ホームページ >バックエンド開発 >PHPの問題 >PHPで文字列をインターセプトする方法は何ですか

PHPで文字列をインターセプトする方法は何ですか

青灯夜游
青灯夜游オリジナル
2021-07-23 19:37:2947535ブラウズ

php インターセプト方法: 1. substr() を使用してインターセプトします。文字列の指定された位置から特定の長さの文字をインターセプトできます。 2. mb_substr() を使用してインターセプトします。この関数は指定された文字列をインターセプトできます。文字列の一部の文字は、英語の文字だけでなく、中国語の文字にも有効です。

PHPで文字列をインターセプトする方法は何ですか

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

1. substr( を使用します。 ) String をインターセプト

substr() 関数は、文字列の指定された位置から特定の長さの文字をインターセプトできます。このインターセプトされた文字は、「部分文字列」または「部分文字列」と呼ばれます。形式は次のとおりです:

substr($string, $start [, $length])

パラメータの説明は次のとおりです:

  • $string: インターセプトする必要がある文字列、文字列には少なくとも 1 つの文字が含まれています。 ##$start: インターセプト 文字列の開始位置;
  • $start が負でない数値の場合、文字列は $string の $start 文字からインターセプトされ、$start は 0 からカウントを開始します。 。たとえば、文字列「abcdef」では、位置 0 の文字は「a」、位置 2 の文字は「c」などになります。
    • $start が負の数の場合、文字列は次のようになります。 start from $ 文字列の終わりは $start 文字の前から始まり、$start は -1 からカウントを開始します。たとえば、文字列「abcdef」では、位置 -1 の文字は「f」、位置 -3 の文字は「d」などになります。
    • $string の長さが以下の場合$start の場合、FALSE が返されます。
    $length: インターセプトされた文字列の長さを示すオプションのパラメータ。
  • $length が正の数の場合、文字列は $start 位置から $length 文字まで切り詰められます。
    • $length が負の数の場合、$length 文字から $length 文字まで切り詰められます。 $string の末尾 文字は省略されます ($start が負の数の場合、文字列の末尾から数えられます);
    • $length の値が 0、FALSE、または NULL の場合、空の文字列が返されます;
    • $length が指定されていない場合、返される部分文字列は $start 位置から文字列の終わりまで始まります。
    #例: 異なる正と負の数値を持つ開始パラメーターと長さパラメーターの使用
  • <?php
    echo substr("Hello world",0,10)."<br>";
    echo substr("Hello world",1,8)."<br>";
    echo substr("Hello world",0,5)."<br>";
    echo substr("Hello world",6,6)."<br>";
     
    echo substr("Hello world",0,-1)."<br>";
    echo substr("Hello world",-10,-2)."<br>";
    echo substr("Hello world",0,-6)."<br>";
    echo substr("Hello world",-2-3)."<br>";
    ?>
出力:

Hello worl
ello wor
Hello
world
Hello worl
ello wor
Hello
world


2. mb_substr() を使用して中国語の文字列をインターセプトします

mb_substr() 関数は、文字列の指定された部分をインターセプトできます。substr() 関数とは異なり、mb_substr() 関数は英語の文字だけをインターセプトするわけではありません。有効な文字列、中国語の文字も有効です。構文形式は次のとおりです:

mb_substr($str , $start [, $length = NULL [, $encoding = mb_internal_encoding()]])

パラメータの説明は次のとおりです:

$str: インターセプトする文字列、文字列には次のものが含まれます少なくとも 1 つの文字;

    $start: 文字列の開始位置をインターセプト;
  • $start が負でない数値の場合、文字列は $start 文字位置から開始してインターセプトされますof $str;
    • $start が負の数の場合、文字列は $start 文字の位置から開始して、$str の終わりからインターセプトされます。
    • $length: インターセプトされた文字列の長さを示すオプションのパラメーター;
  • $length が正の数の場合、文字列は $start から逆方向にインターセプトされます。位置 $length 文字まで;
    • $length が負の数の場合、$string の末尾の $length 文字が省略されます ($start が負の数の場合は、末尾から数えられます)文字列の);
    • $length の値が NULL であるか、$length が省略されている場合は、文字列の末尾まで切り取られます。
    • $encoding: $str の文字エンコーディングを示すオプションのパラメーター。省略した場合は、内部の文字エンコーディングが使用されます。
  • 例: mb_substr() 関数を使用して、指定された長さの中国語文字列をインターセプトします。
  • <?php
        $str = &#39;欢迎访问PHP中文网,一个在线学习编程的网站。&#39;;
        echo mb_substr($str, 4).&#39;<br>&#39;;
        echo mb_substr($str, -19).&#39;<br>&#39;;
        echo mb_substr($str, 4, 6).&#39;<br>&#39;;
        echo mb_substr($str, 4, -16).&#39;<br>&#39;;
        echo mb_substr($str, -19, -13).&#39;<br>&#39;;
        echo mb_substr($str, -19, 6).&#39;<br>&#39;;
        var_dump(mb_substr($str, 40));
        echo &#39;<br>&#39;;
        var_dump(mb_substr($str, 4, null));
    ?>
実行結果は次のとおりです。

PHP中文网,一个在线学习编程的网站。
PHP中文网,一个在线学习编程的网站。
PHP中文网
PHP
PHP中文网
PHP中文网
string(0) ""
string(55) "PHP中文网,一个在线学习编程的网站。"

推奨される学習: "

PHP ビデオ チュートリアル

>>

以上がPHPで文字列をインターセプトする方法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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