プログラム中でよく使うPATHとURLを扱うPHP関数の覚え書きです。ファイル名のみ取り出したり、拡張子を取り出したりといったように様々な用途で頻繁に利用します。
PATHを扱う関数
1. パスの指定要素を取り出す
pathinfo
http://www.php.net/manual/ja/function.pathinfo.php
pathinfo($path, [取り出す要素]);
パスを構成要素に分割して指定された要素を返します。
この出力結果は以下のようになります。
- /www/html/img
- sample.jpg
- jpg
- sample
第2パラメータの取り出す要素を省略した場合には、全ての要素を含む連想配列を戻します。
この出力は以下のようになります。
これ以外にもdirname(), basename()という関数があり、これがpathinfo(PATHINFO_DIRNAME)やpathinfo(PATHINFO_BASENAME)と同じ結果を戻します。basename()は拡張子がわかっているような場合に第2引数に拡張子を指定すると拡張子をのぞいたpathinfo(PATHINFO_FILENAME)と同じ値を返してくれます。
pathinfo以外で拡張子のみを取り出す関数はないようです。以下のようにすれば取り出せます。
注: array_pop()もend()もどちらも配列の最後の要素を返します。
出力結果は以下のようになります。
- jpg
- jpg
dirname
http://www.php.net/manual/ja/function.dirname.php
basename
http://www.php.net/manual/ja/function.basename.php
2.相対パスを絶対パスを変換する
realpath
http://www.php.net/manual/ja/function.realpath.php
realpath()は相対パスを絶対パスを変換してくれます。「.」や「..」、シンボリックリンクなどを含まない絶対パスを返します。ファイルやパスが存在しない場合にはFALSEが返ります。
URLを扱う関数
pathinfo()のURL版のような関数がparse_url()関数です。
parse_url
http://www.php.net/manual/ja/function.parse_url.php
parse_url($path, [取り出す要素])
絶対URLを構成要素に分割して指定した要素を返します。第2パラメータの要素を省略した場合には全要素を含む連想配列を返します。
この出力は以下とようになります。
取り出す要素としては以下のものが指定可能です。
PHP_URL_SCHEME、 PHP_URL_HOST、PHP_URL_PORT、 PHP_URL_USER、PHP_URL_PASS、 PHP_URL_PATH、PHP_URL_QUERY、PHP_URL_FRAGMENT
注意:この関数は相対URLでは正しく動作しません。絶対URLを使いましょう。

