雑多なブログ

音楽や語学、プログラム関連の話題について書いています

PHP: substrの使い方

substrは文字の一部分を返す関数です。
バイト単位で検索するため、マルチバイト文字には使えませんが、
工夫すると色々と使い所のある関数です。

目次

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

文字列($string)の、指定した位置($start)から指定したバイト数($length)の文字を返します。

1-1. 指定した文字列の7文字目から末尾までの文字を取得する

php -a
php > var_dump(substr('AIUEO HELLO', 6));
string(5) "HELLO"
exit

1-2. 指定した文字列の2文字目から4byte分の文字を取得する

php -a
php > var_dump(substr('AIUEO HELLO', 1, 4));
string(4) "IUEO"

2-1. 指定した文字列の末尾から数えて7文字目(AIUEOのO)から末尾までの文字を取得する

php -a
php > var_dump(substr('AIUEO HELLO', -7));
string(7) "O HELLO"

2-2. 指定した文字列の末尾から数えて5文字目から2byte分の文字を取得する

php > var_dump(substr('AIUEO HELLO', -5, 2));
string(2) "HE"

オマケ: 末尾が指定文字で終わっているかどうか判定する

サンプルソース

<?php

function endWith(string $str, string $search): bool
{
    if (substr($str, -strlen($search)) === $search) {
        return true;
    }

    return false;
}

// NG
var_dump(endWith('hogefugemoga', 'maga'));

// OK
var_dump(endWith('hogefugemoga', 'moga'));

実行結果

bool(false)
bool(true)