編寫程序最終就是瀏覽器看到的html代碼的表現(xiàn)形式,所以,就先研究一下這五種類型。
數(shù)字、浮點、布爾型是值類型,英文:int、float、bool,這樣你知道他們怎么用了。
比如語句:$fa=3.14;
字符串和數(shù)組是引用類型,也就是說他們作為地址放在棧里,當重新賦值時,棧里的地址改變方向,原來的指向變沒或給回收了,英文:string、array。
比如:$str=”字符串”;$arr=array(“a”=>”數(shù)”,”b”=>”組”);//array()是一個數(shù)組賦值函數(shù),這樣的函數(shù)PHP有一千多個,一般常用的不到200個,我覺得。
字符串操作:
實例2:字符串合并、相加
代碼如下:
<?php
$str=1;
echo$str.="";//數(shù)字轉化為字符串再合并,結果:"1"。
echo"<br>";
echo$str+="1元";//字符串轉化為數(shù)字再相加,如"1XXX"轉化為數(shù)字1,結果:2。
echo"<br>";
?>
實例3:字符串改變大小寫
代碼如下:
<?php
$str="12345ABc";
echostrtolower($str);//變小寫,結果:"12345abc"。
echo"<br>";
echostrtoupper($str);//變小寫,結果:"12345ABC"。
echo"<br>";
?>
實例4:字符串長度、截取子字符串(中英文)
代碼如下:
<?php
$str="字符串2";
echomb_strlen($str,"UTF-8");//返回字符串長度的函數(shù),第二個參數(shù)是編碼,由于頁面用UTF-8編碼,所以為這樣。如果省去,返回內(nèi)存占用的字節(jié)數(shù)(ASCII),即10。結果4
echo"<br>";
echomb_substr($str,1,2,"UTF-8");//返回字符截取,1為從”符”地址開始截取,2為截取2個"UTF-8"編碼的字符,結果:“符串”。
echo"<br>";
/**
*知識點:現(xiàn)在開始接觸函數(shù)了,每個函數(shù)都有()作為堆棧調(diào)用,()里面放0個或多個參數(shù),可以自定義可以有默認值。而關鍵字比如echo是沒有()的。
*很多書用GB2312編碼,取長度和子串時很麻煩。下面給大家參考一下不用上面的mb中文字符串擴展庫實現(xiàn)原理:
*/
functionmy_mb_strlen($str,$code="UTF-8")//定義一個新函數(shù),$str是必須傳入的參數(shù)。
{$num=0;
if($code=="UTF-8")
{
$str=iconv("UTF-8","GB2312",$str);//轉化為GB2312編碼,ord函數(shù)返回對應的ASCII值判斷每個字節(jié)該中文字符是否結束。
for($i=0;$i<strlen($str);$i++)//在此strlen($str)返回內(nèi)存占用的字節(jié)數(shù)相當于mb_strlen($str)
{
if(ord($str[$i])>0xa0)$i++;//$str[$i]對應內(nèi)存的i字節(jié)。如果直接用UTF-8判斷會復雜些,因為編碼的多樣性UTF-8是網(wǎng)頁常用編碼,UTF-16(Unicode)是windows編碼。
$num++;
}
}
else
{
$num="編碼未實現(xiàn)";
}//有興趣的自己查資料吧
return$num;
}
echomy_mb_strlen($str).";".my_mb_strlen($str,"GB2312")."<br>";//該頁編碼用UTF-8,你卻說傳入的字符串3是GB2312,就算函數(shù)實現(xiàn)了也無法正確的。
?>
實例5:子字符串查找、替換
代碼如下:
<?php
$str="字符串4";
echomb_strpos($str,'串4',0,"UTF-8");//查找從0開始找到的第一個子字符串位置,結果:2。如果查找不到,返回空(="");如果最后兩個參數(shù)不要,返回6。
echo"<br>";
echomb_strstr($str,'串',0,"UTF-8");//截取從0開始找到的第一個子字符串至結尾,結果:"串4"。如果查找不到,返回空(="");如果最后兩個參數(shù)不要,返回相同=strstr($str,'串')。
echo"<br>";
echostr_replace("4","不是4",$str);//字符串替換,結果:"字符串不是4"。
echo"<br>";
?>
實例6:子字符串去空、html轉義
代碼如下:
<?php
$str="字符串5";
echo$str=trim($str);//去除兩邊空格,結果:"字符串5"。
echo"<br>";
echo"color=\"red\"";//\手工轉義里面的'、"、\,使之存儲到內(nèi)存,結果"color="red""
echo"<br>";
$str="<br>123";
echohtmlentities($str);//字符串轉義<>&'"避免和html標識沖突,使之能在html瀏覽器端顯示出來,結果:"<br>123"。
echo"<br>";
?>
更多信息請查看IT技術專欄