php擷取字串如果是英文那很好辦,直接用substr就行了,一般不會出現亂碼.中文就有點麻煩了.
下面給出兩種解決辦法:
(一)直接使用multi-byte函式庫的mb_substr();函式就行了,例項**如下
<?
php
echo
mb_substr(
$str
,$start
,$length
,$encoding
); echo""
; ?>
這種方法簡單,快速,安全,漂亮,**...反正什麼好詞都可以形容它,但是,可惜我的godaddy主機不支援,所以得另尋出路
(二)自定義擷取中文字串函式,基本上就是仿照mb_substr寫個函式,直接呼叫罷了,以下為我找到的**,其實很簡單:
<?
php
function
substr_cn(
$string_input
,$start
,$length
) >=
161))
//是漢語
else
//是英文 }
$chr_index
=$start_index
; //
擷取 for($i
=0;$i
<
$len;$i
++)
); if
($asc
>=
161)
=chr
($asc
); $return_str
=chr
(ord
($str_input
));
$len+=1
; "color: #008000;">//
結束條件加1
$i++
; //
位置偏移量加1
$chr_index+=2
; continue
; }
else
=chr
($asc
); $chr_index+=1
; }
} return
trim
($return_str
); }
//end of substr_cn
?>
PHP擷取中文字串的問題
以下 試用於gb2312編碼,擷取中文字串是php中乙個頭疼的問題,解決方法是根據值是否大於等於128來判斷是否是雙位元組字元,以避免出現亂碼的情況。但中英文混合 特殊符號等問題總是存在,現在寫乙個比較全面的,僅供參考 程式說明 1.len 引數以中文字元為標準,1len等於2個英文本元,為了形式上...
PHP 擷取中文字串亂碼問題
function csubstr str,start 0,length,charset utf 8 suffix true xf0 xff x80 xbf re gb2312 x01 x7f xb0 xf7 xa0 xfe re gbk x01 x7f x81 xfe x40 xfe re big5...
PHP擷取中文字串的問題
以下 試用於gb2312編碼,擷取中文字串是php中乙個頭疼的問題,解決方法是根據值是否大於等於128來判斷是否是雙位元組字元,以避免出現亂碼的情況。但中英文混合 特殊符號等問題總是存在,現在寫乙個比較全面的,僅供參考 程式說明 1.len 引數以中文字元為標準,1len等於2個英文本元,為了形式上...