PHP

PHP 文字列の一部を取得するsubstr,mb_substrの使い方

2015/08/19

文字列の一部を取得する方法です。

substr」「mb_substr」を使用することで、文字の一部を取得することが出来ます。
substr」も「mb_substr」も記述方法は同じです。

substr(値, 何文字目から取り出すか, 何文字取り出すか);
mb_substr(値, 何文字目から取り出すか, 何文字取り出すか);

日本語(マルチバイト文字)には「mb_substr」を使用しましょう。

第一、第二引数のみの場合

第一、第二引数のみの場合は、指定した文字以降を全て取り出します。0から数える点に注意して下さい。ちなみに第二引数は必須なので、指定しないとエラーになります。(指定しないとsubstr使う意味が無いですけど)

下記は変数xの0から数えて2文字目の c 以降を取得して表示する例です。取り出した後の変数xに変化はありません。

<?php
    $x = "abcdefg";
    echo substr($x, 2)."<br>"; // 0から数えるので 0,1,2 → a,b,c c以降の全てを表示 

    echo $x; // $xに変化はありません。
?>

» 実行結果
 

第三引数を指定する場合

第三引数で、何文字取り出すかを指定することが出来ます。

下記は変数xの0から数えて3文字目 d から2文字を取得して表示する例です。

<?php
    $x = "abcdefg";
    echo substr($x, 3, 2); // d から2文字 de を表示
?>

» 実行結果
 

後ろから取り出す場合

第二引数にマイナスの数値を指定することで、「後ろから何文字目」を指定できます。マイナスの場合は0からではなく、-1から数える事に注意して下さい。

<?php
    $x = "abcdefg";
    echo substr($x, -3, 2); // -1から数えるので -1,-2,-3 → g,f,e eから2文字 ef を取得して表示
?>

» 実行結果
 

-PHP