(对不起,如果标题不好。我实际上是在尝试完成两件事 - 找出如何在 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) ?>
服务器路径/测试/getcwd.php:<? echo getcwd(); ?>
两者都返回当前路径:C:\Users\Burton\Desktop\Sites\dbmover
我通过 Simpletest 源进行了搜索,以检查 chdir() 和 chroot() 的使用——这是唯一的方法。Simpletest 不使用 chdir();
还有什么可以改变路径?
对于 Windows 中使用的 Simpletest,这种相对路径问题显然很常见。 stackoverflow 上有这张海报,其他地方的这张海报也有。
我自己通过使用 dirname( __FILE__
) 来解决它,但我宁愿修复它以使其正常工作。