正規表現でシュッとやるとスマートですね。
function myurlmatch($url){ preg_match('/.*\/(.*)\.(png|jpg|jpeg|gif|)$/i', $url, $match); return $match[1] ?? null; }
拡張子を除いた画像ファイル名(png, jpg, gif)のみ取り出します。iオプションのお陰で拡張子が大文字でもマッチします。
試してみる
$a = myurlmatch("https://example.com/hoge.JPG"); $b = myurlmatch("http://example.com/foo/bar/hoge.png"); $c = myurlmatch("http://example.com/2018.11.13foo_bar.GIF"); $d = myurlmatch("https://example.com/hoge.pdf");