Лучший способ создания абсолютного пути в PHP? (См. 3 метода, перечисленных внутри)
Я могу создавать пути без проблем, но я хочу знать, какой из этих 3 методов является наиболее надежным и надежным, и будет работать на большинстве серверов.
Сейчас я использую метод 1 в своем скрипте, а некоторые пользователи имеют проблемы с пути. Я просто хочу, чтобы этот метод работал на любой версии php и почти на любой конфигурации сервера.
1. <?php echo $_SERVER['DOCUMENT_ROOT']; ?> 2. <?php echo getcwd(); ?> 3. <?php echo dirname(__FILE__); ?>
Большое вам спасибо за любой опыт, который вы можете предоставить по этому поводу!
2 Solutions collect form web for “Лучший способ создания абсолютного пути в PHP? (См. 3 метода, перечисленных внутри)”
dirname(__FILE__)
всегда будет работать независимо от платформы или веб-сервера. DOCUMENT_ROOT может работать по-разному между конфигурациями серверов (Apache vs IIS vs Lighttpd vs nginex). cwd показывает выбранный рабочий каталог, который может быть или не быть прав (вы можете изменить его в скрипте). Поэтому я бы предложил dirname(__FILE__)
-
Массив $ _SERVER
содержит пользовательские данные и, следовательно, не может быть доверен, зависит от платформы (веб-сервера). -
Текущий рабочий каталог может зависеть от точки входа запроса. Рассмотрим этот пример (CLI):
cd ~/mypath/mypath2 php myscript.php cd ~/mypath php mypath/myscript.php
-
IMHO самым безопасным решением является использование
dirname(__FILE__)
илиdirname(__FILE__)
(начиная с PHP 5.3), поскольку путь к файлу всегда будет одинаковым (относительно структуры ваших проектов).