2015-06-23 6 views
0

Я немного запутался в абсолютных путях при поиске в вопросах. У меня есть проект php, который включает файл Header.php, который является заголовком для файлов php первого уровня. Чтобы избежать добавления другого заголовка, я хочу сделать эту работу и для внутренних уровней. Например, используйте его в файле php, который включен в другую папку проекта. Чтобы сделать это, я wana получаю путь абзаца к моей папке public_html и использую это в моем Header.php. Как я могу его получить?Как получить абсолютный путь к папке public_html

ответ

1

Использовать / с самого начала.

include('/header.php'); 

Это всегда будет включать в себя header.php из папки root.

+0

Возможно, я ошибаюсь, но разве это не зависит от типа сервера, на котором работает код? Будет ли это работать последовательно в Windows и Linux? В этом случае, не будет ли он также требовать путей жесткого кодирования к файлам из корня, которые, скорее всего, будут отличаться в средах разработчиков и в реальном времени? –

+0

Да. Это верно. В этом случае мы можем использовать переменную для установки разделителя. –

+1

'Windows' отлично работает с '/' как разделитель каталога в 'paths'. –

1

Вы можете есть абсолютный путь текущего файла сценария по этому пути:

$absolute_path = dirname(__FILE__); 

Вы можете увидеть все магические константы здесь: http://php.net/manual/en/language.constants.predefined.php

+2

Это то же самое, что и ____DIR____ – Derokorian

1

Ничего из вышеперечисленного не работает для меня в разных серверам, поэтому пришлось написать следующую функцию:

echo "public_html absolute path:".public_html(); 
function public_html() { 
    $awords= explode('/', getcwd()); 
    $public_html=""; 
    foreach ($awords as $word) { 
    $public_html.=$word."/"; 
    if ($word=='public_html') break; 
    } 
return substr($public_html,0,-1); 
} 
Смежные вопросы