13

PHPで、次のようなサブディレクトリからのファイルを必要とするファイルがある場合:

require('directory/file.php');

file.php独自のディレクトリに別のファイルを要求したい場合、パスは相対パスfile.phpですか、それとも含まれているファイルですか?

4

3 に答える 3

8

それが理にかなっている場合は、元の必要なファイルに相対的です。

したがって、次のような index というファイルがあるとします。

require("./resources/functions.inc.php");

そして functions.inc.php は次のようになります:

require("./resources/anotherFunctionsFile.inc.php");

それよりも:

require("anotherFunctionsFile.inc.php);

しかし、実際には定数を使用する必要があります__DIR__。これは、常にスクリプトが実行されるディレクトリです。それは物事をずっと簡単にします。

__DIR__およびその他の定数に関する詳細情報: http://php.net/manual/en/language.constants.predefined.php

それが役立つことを願っています。

于 2013-02-15T12:33:22.737 に答える
4

これは、メイン スクリプト (この場合は A.php) に関連しています。require()現在実行中のスクリプトにコードを挿入するだけであることを忘れないでください。

つまり、どのファイルrequire()から呼び出されるかは重要ですか

いいえ。

それを問題にしたい場合は、require()B.php との相対関係を作りたい場合は、__FILE__定数 (または__DIR__PHP 5.3 以降) を使用します。これは、コードが配置されている場合、その行のリテラルの現在のファイルを常に指します。

include(dirname(__FILE__)."/C.PHP");
于 2013-02-15T12:34:58.507 に答える
1
include(dirname(__FILE__).'/include.php');

参照: http://php.net/manual/en/language.constants.predefined.php

ファイルのフル パスとファイル名。インクルード内で使用すると、インクルードされたファイルの名前が返されます。PHP 4.0.2 以降、FILE には常にシンボリック リンクが解決された絶対パスが含まれていましたが、古いバージョンでは状況によっては相対パスが含まれていました。

于 2013-02-15T12:32:59.197 に答える