0

プロジェクトにプラグインしようとしている小さなライブラリがあります。このlibにはいくつかのインクルードがあり、クラス間で必要なので、すべてが機能するようにインクルードパスを設定しようとしています。

兄弟ブランチからインクルードパスを設定しようとすると、問題が発生します。

基準点としては、正常にrequire('/../my/test.php')動作します。

そうですか

set_include_path('/../');
require_once('my/test.php');

でも一度やってみると

set_include_path('/../my/');
require_once('test.php');

私は得る:

警告:require_once(one.php):ストリームを開くことができませんでした:そのようなファイルまたはディレクトリは...にありません

私は何が欠けていますか?

4

1 に答える 1

5

パスを開始する/ということは、ルートディレクトリを調べることを意味します。したがって/../、技術的にはルートディレクトリの1つのディレクトリです。

現在の場所の親ディレクトリへのインクルードパスを設定するには、が必要../です。コードの移植性を高めるために、コードを組み合わせてdirname(__FILE__)現在のディレクトリの絶対パスを取得することをお勧めします。

IE:

set_include_path(dirname(__FILE__) . '/../my/');

末尾のスラッシュを返さない/ため、この例では上記が必要であることに注意してくださいdirname()

于 2013-02-25T17:06:40.157 に答える