ホームページ >バックエンド開発 >PHPチュートリアル >PHP関数substr()、mb_substr()、mb_strcutの違いの分析
この記事では、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 つの違いを注意深く理解してください。 |