本文實例講述了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>";?>輸出為結果為:
1歡迎訪問sina新浪
希望本文所述對大家PHP程序設計有所幫助。
新聞熱點
疑難解答
圖片精選