PHP の substr() 関数はテキストを分割できますが、分割するテキストに中国語の文字が含まれていると問題が発生することがよくあります。この場合、mb_substr()/mb_strcut 関数を使用できます。 substr() と似ていますが、文字列のエンコーディングを設定するために mb_substr()/mb_strcut の最後にもう 1 つのパラメータを追加する必要があります。ただし、ほとんどのサーバーは php_mbstring.dll を開く必要があります。 php.ini内。
例:
コードをコピー コードは次のとおりです:
echo mb_substr('こうすれば文字列は文字化けしません^_^', 0, 7 , ' utf-8');
?>
出力: このように私の言葉
コードをコピー コードは次のとおりです:
echo mb_strcut('This way私の文字列は文字化けしません^_^', 0, 7, 'utf-8');
?>
output: like this
上記の例からわかるように、mb_substr は文字が分割されていますmb_strcut は文字を単語単位で分割しますが、どちらも文字の半分を生成しません...
mbstring 関数の説明:
php の mbstring 拡張モジュールはマルチバイト文字の処理機能を提供します。最も一般的に使用される方法は、 mbstring は、マルチバイトの中国語文字を分割します。これにより、ハーフ文字の発生を回避できます。これは、PHP の拡張機能であるため、一部のカスタム マルチバイト文字よりもパフォーマンスが優れています。
mbstring 拡張機能には、同様の関数を備えたいくつかの関数、mb_substr および mb_strcut が用意されています。説明はマニュアルを参照してください。
コードをコピー コードは次のとおりです:
mb_substr
mb_substr() は、start パラメータと length パラメータで指定された str の部分を返します。
mb_substr() は、以下に基づいてマルチバイトの安全な substr() 操作を実行します。文字数。位置は str の先頭から数えられます。最初の文字の位置は 0 です。2 番目の文字の位置は 1 になります。
mb_strcut
mb_strcut() は、start パラメータと length パラメータで指定された str の部分を返します。 ()はmb_substr()と同等の処理を別の方法で行います。開始位置がマルチバイト文字の2バイト目以上の場合はマルチバイト文字の1バイト目から開始します
長さAND文字より短い文字列をstrから減算します。それはマルチバイト文字列の一部ではないか、シフトシーケンスの途中ではありません。
別の例として、mb_substr と mb_strcut をそれぞれ使用してセグメント化されたテキストがあります:
PLAIN TEXT
CODE:
コードをコピーします コードは次のとおりです:
$str = '私は中国語www.webjx.comの比較的長い文字列です';
echo "mb_substr:" mb_substr($str , 0, 6, ' utf-8');
echo "
";
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>
出力結果は以下の通りです:
mb_substr: 私は比較の文字列です
mb_strcut: 私は
です
http://www.bkjia.com/PHPjc/327759.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327759.html技術記事 PHP の substr() 関数はテキストを分割できますが、分割するテキストに中国語の文字が含まれている場合は、多くの場合問題が発生します。この場合、mb_substr()/mb_strcut 関数、mb_substr() /mb_strcu... を使用できます。