1.單雙引號的區別,定界符,雙引號能夠識別數組[]標記php
//推薦{} $arr=array('one'->100); echo "aaa$arr['one']aaa";//報錯,不能識別' echo "aaa$arr[one]aaa";//aaa100aaa echo "aaa{$arr[one]}aaa";//aaa100aaa,但會和同名常量衝突 echo "aaa{$arr['one']}aaa";//aaa100aaa echo "aaa{$arr["one"]}aaa";//aaa100aaa class Square { public function width(){} }; $square = new Square(); echo "aaa $square->width aaa"//OK echo "aaa $square->width00 aaa"//沒有特殊符號間隔,不能解析 echo "aaa {$square->width}00 aaa"//OK
2.字符串處理函數,隱式轉換爲字符串再處理,如數組長度count()/字符串長度strlen(),注:count('')爲1(和JS區別)html
3.建議這樣訪問元素(區別於數組):$str{1},注:每一個字符有相應的內存空間,只能裝下一個數組
<?php $str='hello'; $str[2]='world'; echo $str;//hewlo ?>
4.字符串輸出函數安全
a.substr($str,1,1); b.mb_substr($str,1,1,'utf-8');//專門處理中文字符 c.echo/print:print有返回值;echo指令方式能夠打印多個參數,逗號隔開 d.die/exit:輸出一個字符串並退出程序 e.printf():格式化輸出,參數如圖:
<?php $int=100.678; printf("%1.2f,%d,%c"$int,$int,$int);//100.68,100,d ?>
f.chr/ord:查找ASC的相應字符/查找ASC g.sprintf():格式化返回,以下:
<?php $int=100.678; $str=sprintf("%1.2f,%d,%c"$int,$int,$int);//100.68,100,d ?> echo $str;//100.68,100,d
5.字符串轉換函數函數
<?php $str="gggddd8hhhhello worldhhh8gggddd"; $nstr=trim($str,"0..9gd");//0到9和包含gd的全刪 echo $nstr;//hhhhello worldhhh ?>
c.str_pad():按需求填充字符串
<?php $str="hello world"; $nstr=str_pad($str,19,"#",STR_PAD_BOTH); echo $nstr;//####hello world#### ?>
d.改變大小寫函數:strtolower/strtoupper/ucfirst/ucwords
6.HTML字符串格式化函數post
a.htmlspecialchars():HTML標記轉換函數
<?php if(isset($_POST['dosubmit'])){ //輸入任何內容直接輸出 echo htmlspecialchars($_POST['shuru']); } ?> <!DOCTYPE html> <html> <head> </head> <body> <form action="" method="post"> <label for="shuru">title:</label><input type="text" id="shuru" name="shuru"/> <button type="submit" name="dosubmit">提交</button> </form> </body> </html>
b.HTML特殊符號添加轉義字符函數:addslashes(); c.HTML特殊符號去掉轉義字符函數:stripslashes(); d.刪除HTML標籤:strip_tags($str,'<b><u>'); //只保留bu e.\n轉br:nl2br();
7.字符串格式化函數加密
md5(md5($str).'niwota');//多層md5進行加密
8.字符串比較函數spa
a.==比較 b.二進制安全比較,即逐個字母的ASCII比較,區分大小寫:strcmp($str1,$str2);//返回1/-1/0 c.同上,不區分大小寫:strcasecmp(); d.按天然順序比較:strnatcmp();/strnatcasecmp(); e.自定義排序:usort($arr,'strnatcasecmp');9.字符串查詢函數code
strstr('name@example.com','@');//@example.com: strstr('name@example.com','@',true);//name:
c.stristr():不區分大小寫,同上