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

PHP関数substr()、mb_substr()、mb_strcutの違いの分析

WBOY
WBOYオリジナル
2016-07-25 08:58:131035ブラウズ
この記事では、php、substr()、mb_substr()、mb_strcut の文字列インターセプト関数の使い方と違いを紹介します。必要な方は参考にしてください。

まず、substr関数を見てみましょう。 テキストの分割にはPHPのsubstr()関数を使用しますが、分割するテキストに漢字が含まれていると問題が発生します。 このとき、mb_substr/mb_strcut 関数を使用できます。mb_substr()/mb_strcut の使用法は、mb_substr()/mb_strcut の最後にもう 1 つのパラメータが追加されて、エンコーディングを設定する点が異なります。ただし、ほとんどのサーバーでは php_mbstring.dll が開かれていません。php.ini で php_mbstring.dll を開く必要があります。

例:

リーリー

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

リーリー

出力: このように 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 の先頭からカウントされます。2 番目の文字の位置は 1 になります。

mb_strcut mb_strcut() は、start パラメータと length パラメータで指定された str の部分を返します。 mb_strcut() は、mb_substr() と同等の動作を方法が異なりますが、開始位置がマルチバイト文字の 2 バイト目以上の場合は、マルチバイト文字の 1 バイト目から開始します。 これは、長さより短い文字列を str から減算し、かつマルチバイト文字列の一部ではない文字、またはシフト シーケンスの途中にない文字を減算します。

次の例を見てください。mb_substr と mb_strcut を使用してセグメント化されたテキストがあります。

リーリー

出力結果: mb_substr: 私は比較の文字列です mb_strcut:私は

です

これら 3 つの関数 substr、mb_substr、mb_strcut を正しい状況で適用できるように、3 つの違いを注意深く理解してください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。