Лучший способ создания абсолютного пути в PHP? (См. 3 метода, перечисленных внутри)

Я могу создавать пути без проблем, но я хочу знать, какой из этих 3 методов является наиболее надежным и надежным, и будет работать на большинстве серверов.

Сейчас я использую метод 1 в своем скрипте, а некоторые пользователи имеют проблемы с пути. Я просто хочу, чтобы этот метод работал на любой версии php и почти на любой конфигурации сервера.

1. <?php echo $_SERVER['DOCUMENT_ROOT']; ?> 2. <?php echo getcwd(); ?> 3. <?php echo dirname(__FILE__); ?> 

Большое вам спасибо за любой опыт, который вы можете предоставить по этому поводу!

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), поскольку путь к файлу всегда будет одинаковым (относительно структуры ваших проектов).