PHP 相対パス指定で読込みエラー
2011/06/06
includeでファイル読込み(相対パス)をしようとしたら「そんなファイルは無い」って怒られた。
修正内容
require_once '../config.php';
↓
require_once dirname(__FILE__) . '/../config.php';
↓
require_once dirname(__FILE__) . '/../config.php';
「dirname(__FILE__)」を最初につけて、相対パスの前に「/」をつけた。
エラー内容とか
怒られた内容は下記のような感じ。
Warning: include ‘../xxxx.php’; [function.include]: failed to open stream: No such file or directory in xxxx.php on line 2
パスの指定先に対象のファイルは存在する。
アレコレ調査すると「PHPの規則」と「相対パス」に問題があるらしい。
「PHPの規則」と「相対パス」
PHPの規則に下記があるらしい。
実行したファイルのあるディレクトリが常に実行時のカレントディレクトリになる。
細かいことはとりあえず気にしない。要はincludeにしろrequireにしろ絶対パスにするか最初に記述したようにひと手間をかければいいってことだね。