ゆるく働き ゆるく生きる ゆるいだれかの日記

menu

ゆるりの足あと


【PHP】相対パスの指定がどうしてもうまくいかない時の対処法

PHPで相対パスの指定がどうしてもうまくいかない時の対処法についてです。

相対パスの指定が上手にいかず、変だと思いながらも、フルパスを使ってなんとか読み込んでいる方も多いと思います。

No such file or directory

のようなエラーが出ます。

フルパスで指定していると、サーバーを移転する時なんかに不便ですよね。

一つ上のディレクトリ⇒temp⇒a.phpをincludeしたい時には「include_once ‘../temp/a.php’」と書きたくなりますが、エラーが出ることがあります。

実行したファイルのあるディレクトリが常に実行時のカレントディレクトリになる規則がPHPにはあるからです。

hoge256blogというサイトに分かりやすく載っていたのでリンクを貼っておきます。

PHP の include, require で相対パスを指定して読み込む場合のメモ

エラー時:include_once ‘../temp/a.php’;
対処方法:include_once dirname(__FILE__) . ‘/../temp/a.php’;

hoge256さんのおっしゃる通り、dirname(__FILE__) .は常時書いておくのがベターな気がします。

以上、 【PHP】相対パスの指定がどうしてもうまくいかない時の対処法 でした!

もし上記で解決しない場合は、teratailで質問すると解決の糸口が見つかるかもしれません。

ご不明な点があればコメント頂ければできる限り対応したいと思います!(たぶんteratailの方が早いし詳しいですが・・・)

Sponsored by

少しはお役に立てましたか?

役に立つかも?と思われた方はぜひシェアを!

関連記事

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

過去に作成したサイト集

DMM FX