1. 程式人生 > >php定界符和幾種輸出方式

php定界符和幾種輸出方式

定界符<<<

1.PHP定界符的作用就是按照原樣,包括換行格式什麼的,輸出在其內部的東西; 
2.在PHP定界符中的任何特殊字元都不需要轉義; 
3.PHP定界符中的PHP變數會被正常的用其值來替換。 

$name='aaa';
$str= <<<STR
<script type='text/javascript'>
   alert('{$name}你好');


</script>
STR;

*1.以<<<End開始標記開始,以End結束標記結束,結束標記必須頂頭寫,不能有縮排和空格,且在結束標記末尾要有分號

 2.開始標記和結束標記相同,比如常用大寫的EOT、EOD、EOF來表示,但是不只限於那幾個,只要保證開始標記和結束標記不在正文中出現即可。  

2.幾種輸出方式

echo和print常用來輸出字串;
檢視陣列常用print_r、var_dump;
若使用echo和print輸出陣列時則,結果只能顯示"Array",不會顯示陣列的結構。

echo

echo '張三';

print

print_r

die   exit

function A(){
	echo '正在執行函式';
	// return 5;//終止指令碼的執行
	die;
	echo 'return之後';
}

echo '開始呼叫函式';

// return;
echo '<br>';
$res = A();
echo '<br>';
echo $res;
echo '<br>';
echo '結束呼叫函式';

•printf

int printf (const char * szFormat, ...);
第一個引數是一個格式化字串,後面是與格式化字串中的程式碼相對應的不同型別多個引數。

•sprintf

int sprintf (char * szBuffer, const char * szFormat, ...);
第一個引數是字串緩衝區,後面是一個格式字串。sprintf不是將格式化結果標準輸出,而是將其存入szBuffer。該函式返回該字串的長度。

$num=5;
$location='樹上';
$format='有%d只猴子在%s';
echo sprintf($format,$num,$location);
//執行結果為:有五隻猴子在樹上

3.常用字串函式

strlen  mb_strlen

$str='張三';//utf-8,一箇中文佔三個位元組
echo strlen($str);//返回字串所佔位元組個數結果為9
echo mb_strlen($str,'utf8');//結果為2

trim    ltrim    rtrim

$str="  #123 # 456 #";
// //trim只能去除首尾,不能去除中間的字元
//ltrim去除首部空格
//rtrim去除尾部空格

•str_replace

定義和用法 

str_replace() 函式以其他字元替換字串中的一些字元(區分大小寫)。

該函式必須遵循下列規則:

  • 如果搜尋的字串是陣列,那麼它將返回陣列。
  • 如果搜尋的字串是陣列,那麼它將對陣列中的每個元素進行查詢和替換。
  • 如果同時需要對陣列進行查詢和替換,並且需要執行替換的元素少於查詢到的元素的數量,那麼多餘元素將用空字串進行替換
  • 如果查詢的是陣列,而替換的是字串,那麼替代字串將對所有查詢到的值起作用。
<?php
echo str_replace("world","Shanghai","Hello world!");
?>

mysql_escape_string   addslashes  stripslashes  htmlspecialchars

$no=1001;
$name='張三';
$memo="I'm a student";
$memo="<script>alert(123)</script>";
$memo=addslashes($memo);
$memo=mysql_escape_string($name);
$memo=htmlspecialchars($memo);

$sql="insert into student(no,name,memo) values('{$no}','{$name}','{$memo}')";
echo $sql;

$str="<script>alert(123)</script>";
echo $str;
//反轉義
$str="I\'m a studen";
$str=stripslashes($str);
echo $str;