インクルード ファイル自体に別のファイルが含まれていて、それをドット プレフィックスで参照している場合、インクルードに問題があります。たとえば、 inc1.php、inc2.php、およびsubdir/test.phpという 3 つのファイルがあり、その内容は次のとおりです。
サブディレクトリ/test.php:
set_include_path(get_include_path().":../:../.");
require("inc1.php");
inc1.php:
require("./inc2.php");
inc2.php
echo "OK";
ここに示すこのインクルード ツリーは、ストリームを開くことができませんでした: No such file or directoryエラーで失敗します。inc1.php に単純なrequire("inc2.php");が含まれている場合に機能します。、「./」プレフィックスなし。追加した "../。" 動作させる試みとしてインクルードパスに追加しましたが、効果はありませんでした。
「./」プレフィックスを使用してインクルードを実行する以外に、inc1.php と inc2.php が書き込み可能ではなく、subdir/test.php のみを変更できると仮定すると、ここでの解決策は何ですか? test.php 内から inc1.php をどのように含めることができますか?
参考までに、PHP 5.2.9 を使用しています。