substr_compare

(PHP 5, PHP 7)

substr_compare指定した位置から指定した長さの 2 つの文字列について、バイナリ対応で比較する

説明

substr_compare ( string $main_str , string $str , int $offset [, int $length [, bool $case_insensitivity = FALSE ]] ) : int

substr_compare() は、main_stroffset 文字目以降の最大 length 文字を、str と比較します。

パラメータ

main_str

比較したい最初の文字列。

str

比較したい二番目の文字列。

offset

比較を開始する位置。 負の値を指定した場合は、文字列の最後から数えます。

length

比較する長さ。デフォルト値は、 main_str の長さから offset を引いたものと str の長さのうち、長いほうです。

case_insensitivity

case_insensitivityTRUE の場合、 大文字小文字を区別せずに比較します。

返り値

main_stroffset 以降が str より小さい場合に負の数、 str より大きい場合に正の数、 等しい場合に 0 を返します。offsetmain_str の長さ以上であるか、あるいは length が設定されていて 1 未満である場合 (PHP 5.5.11 より前のバージョン)、substr_compare() は警告を表示して FALSE を返します。

変更履歴

バージョン 説明
5.5.11 length0 にもできるようになりました。
5.1.0 負の offset を使用できるようになりました。

例1 substr_compare() の例

<?php
echo substr_compare("abcde""bc"12); // 0
echo substr_compare("abcde""de", -22); // 0
echo substr_compare("abcde""bcg"12); // 0
echo substr_compare("abcde""BC"12true); // 0
echo substr_compare("abcde""bc"13); // 1
echo substr_compare("abcde""cd"12); // -1
echo substr_compare("abcde""abc"51); // 警告
?>

参考

  • strncmp() - 最初の n 文字についてバイナリセーフな文字列比較を行う