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

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

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

1.  <?php echo $_SERVER['DOCUMENT_ROOT']; ?>

2.  <?php echo getcwd(); ?>

3.  <?php echo dirname(__FILE__); ?>

Огромное спасибо за любые экспертные знания можно обеспечить об этом!

9
задан mark 23 May 2010 в 19:23
поделиться

2 ответа

dirname (__ FILE __) будет работать всегда, независимо от платформы или веб-сервера. DOCUMENT_ROOT может работать по-разному в зависимости от конфигурации сервера (Apache vs IIS vs Lighttpd vs nginex). cwd показывает выбранный рабочий каталог, который может быть правильным или неправильным (вы можете изменить его в скрипте). Поэтому я бы предложил dirname (__ FILE __)

8
ответ дан 4 December 2019 в 21:08
поделиться
  • $ _ SERVER array содержит пользовательские данные и, следовательно, нельзя доверять зависит от платформы (веб-сервера).

  • Текущий рабочий каталог может зависеть от точки входа запроса. Рассмотрим этот пример (CLI):

     cd ~ / mypath / mypath2
    php myscript.php
    cd ~ / mypath
    php mypath / myscript.php
    
  • ИМХО, самым безопасным решением является использование dirname (__ FILE __) или __ DIR __ (начиная с PHP 5.3), поскольку путь к файлу всегда будет одинаковым (относительно структуры вашего проекта).

2
ответ дан 4 December 2019 в 21:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: