這篇文章介紹的內容是關於php的字串,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
iconv_strlen得到字元個數
//假設當前頁面編碼為GBK
<?php$str="中國abc";echo strlen($str); //返回7,因為 GBK編碼每個中文兩個位元組,strlen是返回字串所佔的位元組長度。echo "<hr>";echo iconv_strlen($str,"GBK"); //返回5.iconv_strlen 是統計字串的字元數量?>
//假設當前頁面編碼為UTF-8
<?php$str="中國abc";echo strlen($str); //返回9,因為 UTF-8編碼每個中文三個位元組,strlen是返回字串所佔的位元組長度。echo "<hr>";echo iconv_strlen($str,"UTF-8"); //返回5.iconv_strlen 是統計字串的字元數量?>
iconv_strlen 是無論是何種編碼,均能計算準確字元個數。
mb_strlen — 擷取字串的長度
PHP內建的字串長度函數strlen無法正確處理中文字串,它得 到的只是字串所佔的位元組數。
對於GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對於UTF-8編碼的中文,就是3倍的差異了(在 UTF-8編碼下,一個漢字佔3個位元組)。
採用mb_strlen函數可以較好地解決這個問題。
mb_strlen的用法和 strlen類似,只不過它有第二個選擇性參數用於指定字元編碼。
例如得到UTF-8的字串$str長度,可以用 mb_strlen($str,'UTF-8')。
如果省略第二個參數,則會使用PHP的內部編碼。內部編碼可以通過 mb_internal_encoding()函數得到。
需要注意的是,mb_strlen並不是PHP核心函數,使用前需要確保在php.ini中載入了php_mbstring.dll,即確保“extension=php_mbstring.dll”這一行存在並且沒有被注釋掉,否則會出現未定義函 數的問題。
mb_strlen('abcdef','utf-8')和mb_strlen('一二三四五六','utf-8')都等於6
trim
echo trim(",1,2,3,4,", ","); // 將得到 1,2,3,4 兩端的","號被裁掉了。
strcmp() 函數比較兩個字串。
注釋:strcmp() 函數是二進位安全的,且對大小寫敏感。
本函數返回:
0 - 如果兩個字串相等
<0 - 如果 string1 小於 string2
>0 - 如果 string1 大於 string2
HTML相關
1,htmlspecialchars($string)
這是它的最簡單用法,將字串中的一些特殊字元(顧名思義)&,',"<,>轉換成它們對應的HTML實體形式:
PHP:
$str = "i love kiki, iwind said."; echo htmlspecialchars($str);
將會輸出
i love <font color="red">kiki</font>, iwind said.
2,htmlentities($string)
將所有能轉換成實體形式的字元都轉換成實體形式。
3,html_entity_decode($string);
PHP4.3.0以後加入的具有與htmlentities($string)相反的功能。
4,nl2br($string)
將字串中所有分行符號轉變成
+ 分行符號。如:
PHP: $str = "i love kiki,/n iwind said."; echo nl2br($str);
將會輸出
i love kiki,
iwind said.
相關推薦:
PHP字串編碼問題詳解