php getcwd() разрешает цель символической ссылки вместо текущей директории

Насколько я знаю, 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 ответ

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

Другие вопросы по тегам