首頁 >後端開發 >php教程 >php的字串

php的字串

不言
不言原創
2018-04-23 16:32:011120瀏覽

這篇文章介紹的內容是關於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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn