本文實例講述了PHP實現截取中文字符串不出現?號的解決方法,分享給大家供大家參考,具體如下:
當PHP截取中英文混合字符串時,最后一個漢字經常被拆成兩半,例:截取字符串的前18個字,代碼如下:
- <?php
- $text="1歡迎訪問sina新浪播客";
- $value=substr($text, 0, 18);
- echo$value."<BR>";
- ?>
輸出為結果為:
1歡迎訪問新浪?BR>
于是寫了以下這段代碼,判斷如果中英文混合字符串中的漢字字節數為奇數,則少截取一個字節,保證漢字顯示完整,代碼如下:
- <?php
- $text="1歡迎訪問sina新浪播客";
- $value=substr($text, 0, 18);
- $value_length=strlen($value);
- $value_count= 0;
- for($i= 0;$i<$value_length;$i++)
- {
- if(ord($value{$i}) > 127)
- {
- $value_count++;
- }
- }
- if($value_count% 2 != 0)
- {
- $value=substr($text, 0,$value_length- 1);
- }
- echo$value."<BR>";
- ?>
輸出為結果為:
歡迎訪問sina新浪
新聞熱點
疑難解答