ホームページ >バックエンド開発 >PHPチュートリアル >substr()、mb_substr()、mb_strcut 関数の使用法と違い_PHP チュートリアル

substr()、mb_substr()、mb_strcut 関数の使用法と違い_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:00:131020ブラウズ

phpでは、substr()、mb_substr()、mb_strcutの3つの関数はいずれも文字インターセプト関数ですが、substrは中国語のインターセプトをサポートしています。

substr()関数

substr(文字列,開始,長さ)

文字列は傍受するオブジェクトを表し、startは傍受する位置を表し、0は先頭を表し、正の数値はこの数値の末尾からの傍受を表し、負の数値は末尾からの傍受位置を表しますが、引き続き左から右にインターセプトされます。長さは、末尾の除外または無視される文字数を表します。 例:

コードは次のとおりです コードをコピー
$siteurl = 'www.bKjia.c0m';
print_r (substr($siteurl,4));終了;

//次に return: bKjia.c0m は、先頭から 4 番目の文字から開始して、後続のすべての文字を返すことを意味します。

コードは次のとおりです コードをコピー

$siteurl = 'www.bKjia.c0m';
print_r (substr($siteurl,-6,2));終了;

2 バイトの中国語文字をインターセプトしたい場合は、PHP mb_substr 関数または mb_strcut 関数を使用する必要がありますが、これら 2 つの関数は PHP 拡張機能 php_mbstring.dll コンポーネントに依存しているため、サーバーを設定する必要があります。 PHP インストール ディレクトリ内の php_mbstring.dll ファイルを Windows 2003 の C ドライブの Windows/system32 ディレクトリにコピーします。


例:

コードは次のとおりです コードをコピー

echo mb_substr('こうすれば文字列は文字化けしません^_^', 0, 7, 'utf-8');
?>

出力: このように私の言葉

コードは次のとおりです コードをコピー

echo mb_strcut('こうすれば文字化けしません^_^', 0, 7, 'utf-8');
?>

出力: このように

上記の例からわかるように、mb_substr は文字を単語ごとに分割し、mb_strcut は文字をバイトごとに分割しますが、どちらも文字の半分を生成しません...

コードは次のとおりです コードをコピー

echo mb_substr('飛花園ブログ飛花園',0,9);
//戻る: 飛華園

echo mb_substr('飛花園ブログ飛花園',0,9,'utf-8');
//戻る: 飛花園ブログ feih

mb_strcut('飛花園ブログ飛花園',0,9,'utf-8');
その後、飛花園に戻ります
?>

別の例として、mb_substr と mb_strcut をそれぞれ使用してセグメント化されたテキストがあります。

プレーンテキスト

コード:

コードは次のとおりですコードをコピー
$str = '私は比較的長い中国語の文字列です-';

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

エコー "
";

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

?>

出力結果は以下の通りです:

mb_substr: 私は比較の文字列です

mb_strcut:私は
です

この記事の概要

上記の例からわかるように、substr は英語のインターセプトにのみ適したシングル バイトのみをサポートしますが、mb_substr 関数は中国語に使用できるダブル フォントをインターセプトしますが、mb_strcut は 3 バイトです。

http://www.bkjia.com/PHPjc/631262.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631262.html技術記事 PHP では、substr()、mb_substr()、mb_strcut の 3 つの関数はすべて文字インターセプト関数ですが、substr が中国語の文字をインターセプトすると文字化けが発生します。以下にそれらを紹介します。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。