PHP include の include やっぱり問題
やっぱり PHP の相対 include がうまくいかない。
それはこんな場合。
/index.php
/include/include.php
/config/config.php
/index.php
require_once( "include/include.php" );
/include/include.php
require_once( "../config/config.php" );
/config/config.php
echo "HOGE";
/index.php を実行すると、/include/include.php が /config/config.php をインクルードする所でエラーが出ちゃいます。
調べてみると。
英語のマニュアルで見つけてしまいました。
PHP: include - Manual
If filename begins with ../, it is looked only in include_path relative to the current working directory.
日本語のマニュアルには書いてないよ!
PHP: include - Manual
訳すと多分こんな感じ。
もしファイル名が ../ で始まっていた場合、読み込むファイルはカレントのワーキングディレクトリからの include_path でのみ探されます。どうだ分かりにくいだろう。ざまあみろ。
つまり。
PHP はカレントのスクリプトから親階層のディレクトリをたどって相対的に include することができない。
C / C++ の #include と全く同じようにはなってないようです。ややこしいよ PHP !
カテゴリ
developmentトラックバック(0)
このブログ記事を参照しているブログ一覧: PHP include の include やっぱり問題
このブログ記事に対するトラックバックURL: http://je-pu-pu.jp/blog/mt-tb.cgi/433

コメントする