這篇文章介紹的內容是關於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 - 如果兩個字串相等
913bd8e543191133acf805f709cf119e0 - 如果string1 大於string2
HTML相關
#1,htmlspecialchars($string)
這是它的最簡單用法,將字串中的一些特殊字元(顧名思義)&,',"6580843315dd7804e35fd3743df832ea轉換成它們對應的HTML實體形式:
PHP:
$str = "i love kiki, iwind said."; echo htmlspecialchars($str);
將會輸出
i love 8121d6c8a34839335b283c3765c68ed6kikie6e38b3c62e8df885fe2e3986461aa63, iwind said.
2,htmlentities($string )
將所有能轉換成實體形式的字元都轉換成實體形式。
4,nl2br($string)
將字串中所有換行符號轉換成
換行符號。 love kiki,
iwind said.
相關推薦:
#PHP字串編碼問題詳解
以上是php的字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!