2017-09-02 6 views
0

私は、次のファイル階層があります。screenshotなぜ./が私のPHPファイルのカレントディレクトリとして認識されていないのですか?

とするrequire_onceは何とか(警告機能していない:require_onceを(./ AutentificadorJWT.phpを):ストリームをオープンに失敗しましたありません:Cでそのようなファイルまたはディレクトリ:\ XAMPP \ htdocsにします\ clases \ usuario.php on line 2) 私の知る限り、./は現在のディレクトリを指します。今すぐ以下の作品: require_once 'AutentificadorJWT.php'; なぜ./が機能しないのですか?

+0

既に説明済みhttps://stackoverflow.com/questions/579374/what-does-the-dot-slash-do-to-php-include-calls –

+0

./は現在のディレクトリを意味するため、なぜrequire_once 'なのか? /AutentificadorJWT.php ';動作しませんか? – user3646717

+0

実行中のメインスクリプトファイルはindex.phpで、require_once(./ AutentificadorJWT.php):サブフォルダ "class"にある別のファイルで呼び出されています。現在のPHPディレクトリは "htdocs"です。index.php現在実行中のスクリプトファイルです。 –

答えて

1

複雑なコード階層を使用している場合、どのディレクトリが現在のディレクトリであるかを知ることは非常に困難です。一定の参照ポイントを使用する場合は、コンピュータ上のコードの基底を定義する$_SERVER['DOCUMENT_ROOT']を使用できます。だから...

require_once $_SERVER['DOCUMENT_ROOT'].'/base.php'; 

プロジェクトのルートで動作します。私がこれを持っていた1つの問題は、ユニットテストで常に多くの変数が設定されているわけではないということです。

また、現在のファイルのディレクトリである__DIR__を使用することもできます。あなたの場合はあなたにそれを変更した場合...

require_once __DIR__.'/AuthentifacdorJWT.php'; 

これは、常に作業しているファイルのディレクトリに相対的です。

関連する問題