日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]

發布時間:2025/3/15 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在PHP中,使substr函數截取字符串末位會出現亂碼,因為中文UTF-8編碼,每個漢字占3字節,而GB2312占2字節,英文占1字節,截取位不準確,造成斷開的字符會把其后的..拉過來一起做一個字,所以出現了亂碼。

substr --- 取得部份字符串語法 : string substr (string string, int start [, int length])

說明 :

substr( )傳回 string的一部份字符串,由參數 start和 length指定。

如果 start是正數,傳回的字符串將會從 string的第 start個字元開始。

Example :

$rest = substr ("abcdef", 1); // returns "bcdef"

$rest = substr ("abcdef", 1, 3); // returns "bcd"

?>

如果 start是負數,傳回的字符串將會從 string結尾的第 start個字開始。

Example :

$rest = substr ("abcdef", -1); // returns "f"

$rest = substr ("abcdef", -2); // returns "ef"

$rest = substr ("abcdef", -3, 1); // returns "d"

?>

如果有給予參數 length而且是正數時,傳回的字符串將會從 start傳回 length個字元。

如果有給予參數 length而且是負數時,傳回的字符串將會結束于 string結尾的第 length個字元。

Example :

$rest = substr ("abcdef", 1, -1); // returns "bcde"

?>

dongyue,2005-01-07 11:10:41

substr --- 取得部份字符串

語法 : string substr (string string, int start [, int length])

說明 :

substr( )傳回 string的一部份字符串,由參數 start和 length指定。

如果 start是正數,傳回的字符串將會從 string的第 start個字元開始。

Example :

$rest = substr ("abcdef", 1); // returns "bcdef"

$rest = substr ("abcdef", 1, 3); // returns "bcd"

?>

如果 start是負數,傳回的字符串將會從 string結尾的第 start個字開始。

Example :

$rest = substr ("abcdef", -1); // returns "f"

$rest = substr ("abcdef", -2); // returns "ef"

$rest = substr ("abcdef", -3, 1); // returns "d"

?>

如果有給予參數 length而且是正數時,傳回的字符串將會從 start傳回 length個字元。

如果有給予參數 length而且是負數時,傳回的字符串將會結束于 string結尾的第 length個字元。

Example :

$rest = substr ("abcdef", 1, -1); // returns "bcde"

?>

Utf-8、gb2312都支持的漢字截取函數

//截取中文字符串

/*

Utf-8、gb2312都支持的漢字截取函數

cut_str(字符串, 截取長度, 開始長度, 編碼);

編碼默認為 utf-8

開始長度默認為 0

*/function cut_str($string, $sublen, $start = 0, $code = 'UTF-8')

{

if($code == 'UTF-8')

{

$pa ="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";

preg_match_all($pa, $string, $t_string); if(count($t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen));

return join('', array_slice($t_string[0], $start, $sublen));

}

else

{

$start = $start*2;

$sublen = $sublen*2;

$strlen = strlen($string);

$tmpstr = ''; for($i=0; $i

{

if($i>=$start && $i

{

if(ord(substr($string, $i, 1))>129)

{

$tmpstr.= substr($string, $i, 2);

}

else

{

$tmpstr.= substr($string, $i, 1);

}

}

if(ord(substr($string, $i, 1))>129) $i++;

}

if(strlen($tmpstr)

return $tmpstr;

}

}

$str="腳本之家一個不錯的網站";

echo cut_str($str, 8, 5, 'gb2312');

總結

以上是生活随笔為你收集整理的php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。