3

PHP のインクルード パスに問題があり、何が問題なのか理解できません。まず、私のファイル/ディレクトリ構造をお見せしたいと思います:

ファイル/ディレクトリ構造

 |index.php
 |foo/
     |baz.php
     |bar.inc.php
 |asdf/
     |qwerty.inc.php

/index.php:

  include('foo/baz.php');

/foo/baz.php:

  include('bar.inc.php');
  include('../asdf/qwerty.inc.php')

.inc.php-filesの内容はここでは関係ありません。

問題は次のとおりです。

/foo/baz.php直接呼び出すと、2 つのインクルードが正常に機能します。しかし、 を呼び出す/index.phpと、最初のインクルードは機能し、2 番目のインクルードは失敗します。何故ですか?

最初のパスはインクルード時に明らかに変換されますが、2 番目のパスはそうではありません。それは前の と関係があることが../わかりましたが、これを解決する方法がわかりません。これはおそらくPHPの安全性/構成の問題ですか?

ちなみに、エラー出力は次のとおりです。

Warning: include(../asdf/qwery.inc.php): failed to open stream:
No such file or directory in /foo/baz.php
4

1 に答える 1