(これが不適切なタイトルである場合は申し訳ありません。私は実際に2つのことを達成しようとしています-PHPで現在のディレクトリがどのように変更されるかを調べ、WAMPで実行されているSimpletestのバグを修正します。)
EasyPHP (WAMP バリエーション) の Windows 7 ローカル マシンで SimpleTest (simpletest.org) を実行しています。
テストを実行すると、getcwd() に従って、ディレクトリがローカル スクリプト ディレクトリから C:\Program Files (x86)\EasyPHP\apache に戻ります。
getcwd() の出力を調べるために、いくつかの短いスクリプトを作成しました。期待どおり、現在のスクリプト パスが返されます: C:\Users\Burton\Desktop\Sites\dbmover. スクリプト:
サーバーパス/getcwd.php:<? echo getcwd(); require_once('tests/getcwd.php) ?>
サーバーパス/tests/getcwd.php:<? echo getcwd(); ?>
どちらも現在のパスを返します: C:\Users\Burton\Desktop\Sites\dbmover
Simpletest ソースを検索して、chdir() と chroot() の使用を確認しました - 唯一の方法です。Simpletest は chdir() を使用しません。
他に何がパスを変更している可能性がありますか??
この相対パスの問題は、Windows で使用される Simpletest では明らかに非常に一般的です。 スタックオーバーフローのこのポスターには、このポスターが他の場所にあるように、それがあります。
この問題を正常に扱う人もいますが、私はバグだと思います。
私は dirname( __FILE__
) を使用して自分で回避してきましたが、正しく動作するように修正したいと思います。