(PHP 4, PHP 5, PHP 7, PHP 8)
strrchr — 文字列中に文字が最後に現れる場所を取得する
この関数は、文字列 haystack
の中で needle
が最後に現れた位置から、 haystack
の終わりまでを返します。
haystack
検索対象の文字列。
needle
needle
がひとつ以上の文字を含んでいる場合は、 最初のもののみが使われます。この動作は、 strstr() とは異なります。
PHP 8.0.0 より前のバージョンでは、needle
が文字列でない場合、 数値に変換され、文字の通常の値として扱われていました。 この振る舞いは PHP 7.3.0 以降では推奨されないので、 この機能を使用しないことを強く推奨します。 意図した動作に依存する場合、 needle
を string に明示的にキャストするか、 明示的に chr() 関数を呼び出すべきでしょう。
before_needle
true
にすると、 haystack
の中で 最後に needle
が現れる箇所より前の部分を返します (needle は含めません)。
この関数は、部分文字列を返します。 needle
が見つからない場合は false
を返します。
バージョン | 説明 |
---|---|
8.3.0 | before_needle が追加されました。 |
8.0.0 | needle は、空文字列を受け入れるようになりました。 |
8.0.0 | needle に数値を渡すことはサポートされなくなりました。 |
7.3.0 | needle に数値を渡すことは非推奨になりました。 |
例1 strrchr() の例
<?php
$ext = strrchr('somefile.txt', '.');
echo "file extension: $ext \n";
$ext = $ext ? strtolower(substr($ext, 1)) : '';
echo "file extension: $ext";
?>
上の例の出力は、 たとえば以下のようになります。
file extension: .txt file extension: txt
注意: この関数はバイナリデータに対応しています。