【PHP】ある文字列から指定した文字までの部分文字列を取得する
<?php function substrUntilSpecified(string $str, string $specified) { return substr($str, 0, strrpos($str, $specified)); } echo substrUntilSpecified('aaa$bbb&ccc#ddd$eee', '$'); // aaa$bbb&ccc#ddd
strrpos関数を使って、指定文字が最後に現れる位置を取得。
それをsubstr関数に渡して、その位置までの部分文字列を取得する。
なんか必要に迫られて似たような処理を書いたのでメモ。
ちなみに、PHPには、あるファイルへのパスから親ディレクトリのパスだけを取得するdirnameっていう関数があるので、そういう用途には素直にそっちを使いましょ。
<?php echo dirname('aaa/bbb/ccc/ddd/hoge.txt'); // aaa/bbb/ccc/ddd