[PHP] URLからファイル名を取り出す
スポンサーリンク
PHPでURL文字列からファイル名を取り出す方法のメモ。
$path = "http://hogehoge.com/year/month/day/postname.html";
仮に上のようなURLがあったとして、ここからファイル名に当たる「postname.html」の部分だけを取得したい場合に使うコードです。
$path = "http://hogehoge.com/year/month/day/postname.html"; $filename = strrchr( $zippath, "/" );// /postname.html $filename = substr( $filename, 1 );// postname.html
まず、文字列が最後に現れた位置から後ろを取り出す関数strrchr()
を使い、最後の「/」から後ろの部分を取得します。次にスラッシュは必要がないので、substr()で2文字目から後ろを取り出します。
これでURLからファイル名だけを取得することができるのですが・・・
ただしこれだと、URLがスラッシュで終わっているものには対応できていません。上記のコードは終端がスラッシュのURLの場合、falseが返ってきます。
$path = "http://hogehoge.com/year/month/day/postname/";//URLの終端が「/」 $filename = strrchr( $path, "/" );// 「/」一文字だけが返ってくる $filename = substr( $filename, 1 );// 文字長が1なので、2文字目以降は取り出せない var_dump( $filename );// bool(false)
ということで、ファイル名を取り出し可能なURLであるかどうかのチェックを行うコードを付け加える必要があります。
スポンサーリンク