PHP substr(),mb_substr()およびmb_strcutの違いと使い方


PHP substr()関数は文字を分割することができますが、分割する文字に中国語の文字が含まれていると問題になることが多いのでmb_substr()/mb_strcutという関数、mb_substr()/mb_strcutの使い方はsubstr()に似ていますがmb_substr()/mb_strcutは最後に文字列の符号化を設定するために複数のパラメータを追加しますが、一般的なサーバはphp_を開いていません.mbstring.dll、php.iniはphp_mbstring.dllが開きます.
例を挙げます.
<?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 extensionはいくつかの機能が似ている関数を提供しています.mb_substrとmb_strcut、マニュアルの説明を見てください.
mb_substr mb_substr() returns the portion of str specified by the start and length parameters.
mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.
mb_strcut mb_strcut() returns the portion of str specified by the start and length parameters.
mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.
It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.
もう一つ例を挙げるとmb_を使う文字がありますsubstrとmb_strcutは切り分けをします.
<?php
$str = '          -www.webjx.com';

echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');

echo "<br>";

echo "mb_strcut:" . mb_strcut($str, 06, 'utf-8');
?>
の出力結果は次のとおりです.
mb_substr:私は比較mbです.strcut:私は
テキストアドレスhttp://blog.csdn.net/lijunling2008live/article/details/7734743