php getcwd () разрешает цель символической ссылки вместо текущей директории - PullRequest
10 голосов
/ 05 сентября 2011

Насколько мне известно, php getcwd() (и подобные функции, например, dirname(__FILE__)) должны возвращать текущий каталог исполняемого файла.

Если текущим каталогом является символическая ссылка на другой каталог, php (предположительно в сочетании с apache) должен вернуть путь, показывающий имя символической ссылки как «каталог», в котором вы находитесь.

Пример:

from /var/www,
directory 'one' contains index.php
symlink 'two' points at directory 'one'

one/index.php: <?php echo getcwd(); ?>

Доступ к http://localhost/two/index.php в браузере показывает /var/www/one.

Я ожидаю, что это покажет /var/www/two

Кто-нибудь знает, можно ли изменить настройку php или apache? Или я не могу использовать символические ссылки таким образом?

1 Ответ

9 голосов
/ 30 марта 2012

ОК, разобрался. Используйте $_SERVER['SCRIPT_FILENAME'], если через браузер. В командной строке вы можете получить текущий каталог с символическими ссылками, используя exec("pwd")

...