PHP の substr() 関数はテキストを分割できますが、分割するテキストに漢字が含まれている場合は、mb_substr()/mb_strcut 関数を使用することができます。 substr() と似ていますが、mb_substr()/mb_strcut の最後にパラメータを 1 つ追加するだけで、文字列のエンコーディングを設定できます。ただし、ほとんどのサーバーでは php_mbstring.dll を php で開く必要があります。イニ。
例:
<?php echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?>
出力: このように私の言葉
<?php echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8'); ?>
出力: このように
上記の例からわかるように、mb_substr は文字を単語ごとに分割しますが、mb_strcut は文字をバイトごとに分割します。半分の文字は生成されません...
MBstring 関数の説明:
php の mbstring 拡張モジュールは、マルチバイト文字処理機能を提供します。最も一般的に使用される方法は、mbstring を使用してマルチバイト中国語文字を分割することです。これにより、この発生を回避できます。 PHP の拡張機能であるため、一部のカスタム マルチバイト セグメンテーション関数よりもパフォーマンスが優れています。
mbstring 拡張機能には、同様の機能を持ついくつかの関数、mb_substr および mb_strcut が用意されています。説明はマニュアルを参照してください。
mb_substr
mb_substr() は、start パラメータと length パラメータで指定された str の部分を返します。
mb_substr() は、str の先頭から位置をカウントします。文字の位置は 0、2 番目の文字の位置は 1 などとなります。
mb_strcut
mb_strcut() は、start パラメータと length パラメータで指定された str の部分を返します。
mb_strcut() は、別のメソッドで mb_substr() と同等の操作を実行します。開始位置がマルチバイト文字の 2 バイト目以上の場合、マルチバイト文字の最初のバイトから開始します。
長さより短い文字列と、マルチバイト文字列の一部ではない文字を減算します。
別の例として、それぞれ mb_substr と mb_strcut を使用してセグメント化されたテキストがあります:
PLAIN TEXT
CODE:
<?php $str = '我是一串比较长的中文-www.webjx.com'; echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8'); echo "<br>"; echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); ?>
出力結果は次のとおりです:
mb_substr: I am は文字列です 比較
mb_strcut:私は