3

なぜ私がいつもこれに関して多くの問題を抱えているのか分かりません。とにかくこれは私が要求したいファイルへのパスです

/var/www/vhosts/mysite.com/htdocs/Classes/DBConnection.php

これは、requireステートメントを含むファイルへのパスです。

/var/www/vhosts/mysite.com/htdocs/Classes/Forecast/MyFile.php

これはMyFile.phpのrequireステートメントです

require_once '../DBConnection.php';

「ストリームを開けませんでした」というエラーが表示され続けます。絶対パスを入れれば問題なく動作します。誰かがここで問題を見ていますか?

4

4 に答える 4

1

/Classes/Forecast/MyFile.phpが含まれている場合/index.php、相対パスはインデックスファイルからのものになります。これを解決するには、を使用します__DIR__。その場合、requireはそのファイルからの相対的なものになります。

require_once __DIR__.'/../DBConnection.php';

于 2012-10-27T21:21:11.700 に答える
1

私は別の質問でこれについて詳細な答えを持っています:

4ディレクトリ上にあるphpでファイルを見つける

PHPでの相対ファイルパスの注意事項について説明します。相対パスの問題を克服するには、そこに記載されているマジック定数とサーバー変数を使用します。

于 2012-10-27T21:29:27.693 に答える
0

最初に要求されたファイルを基準にしてパスを作成します。したがって、MyFile.phpを含む/var/www/vhosts/mysite.com/htdocs/index.phpにアクセスする場合、パスは「Classes/DBConnection.php」になります。

于 2012-10-27T21:25:22.543 に答える
0

うん。パスは、クラスファイル自体ではなく、クラスファイルMyFe.phpを含むファイルからの相対パスです。MyFile.phpは実際には提供されているページではなく、インクルードまたは自動ロードされたクラスであると想定しています。

于 2012-10-27T21:21:45.953 に答える