PHPで別のPHPファイルを読み込んだり、ログを出力するディレクトリを指定するときに、現在動いているPHPファイルがどこのディレクトリにいるのかを確認したい場合があります。
結論を言ってしまえば下記コードで取得できます。
1 |
$current = dirname(__FILE__); |
上記コードを https://dev-lib.com/sample/sample031.php のページで出力すると
1 |
/home/XXXXX/dev-lib.com/public_html/sample |
となります。
※このブログはXサーバーで動いていまして、XXXXX 部分は個人情報なので伏せさせていただきました。
でも僕なりにちょっと疑問に思ったことを以下にまとめさせて頂きました。
dirname()って何?
dirname()はPHPの関数ですが、現在のディレクトリを取得するときにしか使ったことないです。
ほかに便利な使い方あるのかな?
調べましたら dirname() は、パスを渡すと親ディレクトリを返してくれる関数のようです。
ということは __FILE__ はファイル名かな?
__FILE__って何?
__FILE__ をそのまま出力してみました。
ページは https://dev-lib.com/sample/sample031.php です。
すると、以下のように実行されたPHPのファイルのパスが返ってきました。
1 |
/home/XXXXX/dev-lib.com/public_html/sample/sample031.php |
現在動いてるファイルのパスなんですね。
長いことPHPやってましたけど初めて知りました(笑)
てことは親の親は
1 |
echo dirname(dirname(__FILE__)); |
なるほど。
まとめ
現在のディレクトリを取得する方法は dirname(__FILE__); で出来る。
dirname() は親ディレクトリを取得する関数。
__FILE__ は現在実行中のPHPファイルのフルパスを返す。
親の親はあまり使う場面は無いかもしれません・・・
コメントを残す