ホームページ  >  記事  >  バックエンド開発  >  PHP文字列と漢字の分割方法

PHP文字列と漢字の分割方法

高洛峰
高洛峰オリジナル
2016-11-29 16:07:291346ブラウズ

PHPの関数「str_split」を直接使って分割すると、中国語の文字の長さと英語の文字の長さが異なるため文字化けが発生しますが、新しい関数を作成して最初に文字をASCII値に変換し、次に、さまざまな文字の長さを判断します。中国語の文字列を正しく分割するには、結果を配列に保存し、最後に php 関数「join」を使用して文字間にパーセント記号を挿入します。

方法 1 のコード例は次のとおりです。

function str_split_utf8($ str){

$split=1;

$array=array();

for($i=0;$i $value=ord($str[$i ]);

if($value>127){

if($value>=192&&$value<=223) $split=2; ;=224 && $value<=239) $split=3;

elseif($value>=240 && $value<=247) $split=4;

$split=1; }

$key=null;

for ($j=0;$j<$split;$j++,$i++){

$key.=$str[$i] }

array_push( $array,$key);

return $array;

$string="php ファン ネットワーク www.phpfensi.com";

echo join ("%",$arr1);

?>

方法 2 のコード例は次のとおりです。

$str="php fan network: http://www.phpfensi. com ";

functionmbstringtoarray($ str、$ charset){

$ strlen = mb_strlen($ str);

。 「gb2312」や「utf-8」などの Web ページのエンコード。

2. 方法 1 では、サーバーが mbstring.dll 拡張子を有効にする必要があります。有効にしないと、コード実行エラーが発生します。次のメソッドの使用を検討できます。

メソッド 3 のコード例は次のとおりです。 $i=0;$i

$arr[]=ord($str[$i])>127?$str[$i].$str[ ++$i] :$str[$i];

$arr を返す

}

;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。