ホームページ >バックエンド開発 >PHPチュートリアル >PHP 中国語文字列インターセプト関数_PHP チュートリアル
次の 2 つの関数は 2 つの 2 バイト文字列インターセプト関数で、中国語の文字列をインターセプトするように設計されています。最初の中国語文字インターセプト関数は以前よりも簡潔で、後者はより複雑ですが、より多くの考慮事項が必要です。
//php チュートリアル 中国語文字列インターセプト関数
/*
次の 2 つの関数は、中国語文字列インターセプト用の 2 つの 2 バイト文字列インターセプト関数です。最初の中国語文字インターセプト関数は、より簡潔です。前のものよりも後者はより複雑ですが、より多くの考慮が必要です。
*/
function substr($str = '', $offset = 0, $len = 0){
$len || ($len = strlen($str));
preg_match_all('/./us' , $str, $result);
return implode('', array_slice($result[0], $offset, $len));
}
//メソッド 2
?>if (!function_exists('mb_substr' )) {
function mb_substr($str, $start, $len = '', $encoding="utf-8"){
$limit = strlen($str);for ($s = 0; $start > 0;--$start) {// 本当の start が見つかりました
if ($s >= $limit)
Break;if ($str[$s] <= "x7f")
++ $s;
else {
++$s; // 長さをスキップwhile ($str[$s] >= "x80" && $str[$s] ++$ s;
}
}if ($len == '')
return substr($str, $s);
else
for ($e = $s; $len > 0; --$len) {//本当の終わりを見つけました
if ($e >= $limit)
Break;if ($str[$e] <= "x7f")
+ + $e;//長さをスキップ
++$e;
else {}
while ($str[$e] >= "x80" && $str[$e] <= "xbf" && $e < $limit)
++$e ;
}}
return substr($str, $s, $e - $s);
}