(Извините, если это называется плохо. На самом деле я пытаюсь выполнить две вещи - выяснить, как можно изменить текущий каталог в PHP, и исправить ошибку в Simpletest, работающем на WAMP.)
Я запускаю SimpleTest (simpletest.org) на своем локальном компьютере с Windows 7 на EasyPHP (вариант WAMP).
Когда я запускаю тесты, каталог меняется с локального каталога сценариев обратно на: C: \ ProgramФайлы (x86) \ EasyPHP \ apache в соответствии с getcwd ().
Я создал пару коротких сценариев для проверки вывода getcwd ().Они возвращают текущий путь к сценарию, как и ожидалось: C: \ Users \ Burton \ Desktop \ Sites \ dbmover.Сценарии:
serverpath / getcwd.php: <? echo getcwd(); require_once('tests/getcwd.php) ?>
serverpath / tests / getcwd.php: <? echo getcwd(); ?>
Оба возвращают текущий путь: C: \Пользователи \ Burton \ Desktop \ Sites \ dbmover
Я выполнил поиск по Simpletest источнику, чтобы проверить использование chdir () и chroot () - единственными способами.Simpletest не использует chdir ();
Что еще может изменить путь ??
Эта проблема относительного пути, по-видимому, очень распространена для Simpletest, используемой в Windows. У этого плаката на stackoverflow есть , как и у этого плаката в других местах.
Некоторые люди рассматривают проблему как обычно, но я думаю, что это ошибка.
Я сам обошел ее, используя dirname (__FILE__
), но я бы скорее исправил ее, чтобы она работала правильно.