PHP は、Web アプリケーションの開発で広く使用されている人気のあるサーバー側プログラミング言語です。 Web アプリケーションでは、中国語の文字を破壊せずに文字列をインターセプトする必要があることがよくあります。しかし、従来のPHPの文字列インターセプト方法では中国語が文字化けするなどの問題が発生することが多く、本記事ではPHPで文字化けのない中国語インターセプトを実現する方法を紹介します。
1. 従来のインターセプト メソッドの問題
PHP には文字列をインターセプトするメソッドが多数あり、一般的なメソッドには substr()、mb_substr()、iconv_substr() などが含まれます。ただし、これらのメソッドが中国語の文字列をインターセプトすると、中国語の文字化けや不正確なインターセプトなどの問題が頻繁に発生します。以下にいくつかの例を見てみましょう。
$str = "プログラミングが大好きです。プログラミングは私を幸せにしてくれます!";
$substr = substr($str, 0, 6);
echo $substr;
?>
上記のコードは、漢字化けせずに「I love programming」を出力します。質問。ただし、漢字の「プログラミング」を傍受しようとすると、substr() 関数の使用に問題が発生します。
$str = "私はプログラミングが大好きです、プログラミングは私を幸せにします!";
$substr = substr($str, 3, 6);
echo $substr;
?>
上記のコードは、中国語の「program, programming」を出力します。文字 "プログラミング" "切り詰められました。この結果は明らかに私たちが望んでいたものではありません。
mb_substr() 関数は、PHP の組み込み文字列インターセプト関数であり、マルチバイト文字をサポートしています。漢字化け問題を回避できます。まず、mb_substr() 関数の基本的な使用法を見てみましょう:
$str = "プログラミングが大好きです、プログラミングは私を幸せにしてくれます!";
$substr = mb_substr($ str, 0, 6, 'utf-8');
echo $substr;
?>
上記のコードは「I love programming」を出力し、漢字化けの問題もありません。ただし、漢字の「プログラミング」を傍受しようとすると、mb_substr() 関数を使用すると問題も発生します。
$str = "私はプログラミングが大好きです。プログラミングは私を幸せにしてくれます。 ";
$substr = mb_substr($str, 3, 6, 'utf-8');
echo $substr;
?>
上記のコードは「Cheng」を出力します。 」、「プログラミング」という漢字が切り捨てられます。
2. 解決策
従来の傍受方法の問題に対応して、次の方法を使用して文字化けせずに中国語の傍受を実現できます。中国語文字列を UTF-8 エンコーディングに変換
echo $str;
?>
上記のコードは、$str 文字列を UTF-8 エンコードされた出力に変換します。
mb_substr() 関数を使用して文字列をインターセプト
$substr = mb_substr($str, 3, 6, 'utf-8');
echo $substr;
?>
上記のコードは、 「プログラミング」を出力すると、中国語の文字は正しくインターセプトされます。
3. 概要
以上がPHPで文字化けせずに中国語の傍受を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。