Путь относительно корня сервера для PHP-конструкции Include / Require

В управляющей конструкции include / require допускается использовать путь относительно корня сервера, однако многие начинающие программисты, полагая, что он идентичен пути относительно корня сайта, используют последний. В итоге парсер выдаёт два предупреждения: Warning: include(указанный+путь) [function.include]: failed to open stream: No such file or directory in относительный+путь on line номер+строки

Warning: include(): Failed opening 'указанный+путь' for inclusion (include_path='путь+по+умолчанию') in относительный+путь on line номер+строки

указанный+путь
путь к подключаемому файлу, который указал программист.
относительный+путь
путь к файлу, в котором используется конструкция include / require, относительно корня сервера.
номер+строки
номер строки с ошибкой в вышеупомянутом файле.
путь+по+умолчанию
один или несколько путей к папкам, разделённых двоеточием (:) в Unix и точкой с запятой (;) в Windows, где парсер будет искать подключаемые файлы, если в конструкции include / require указаны только имя и расширение, а не точное расположение, файла или указанного пути не существует.

Дело в том, что на сервере сайты обычно не размещаются в его корне, а конструкция include / require использует указанный в её параметрах путь именно относительно корня сервера, а не сайта.

Чтобы использовать путь относительно корня сервера, нужно узнать путь к папке, в которой располагается сайт. Это можно сделать с помощью следующего скрипта:

<?php

echo dirname( __FILE__ );

?>

Если запустить данный скрипт в корне сайта, то он выведет путь к папке, в которой хранится сайт на сервере, то есть путь к сайту относительно корня сервера. На всех серверах пути к этим папкам похожи. Например, на серверах Хостингера их общий вид следующий: /home/идентификатор+сайта/public_html/

Зная путь к папке, в которой располагается сайт, относительно корня сервера, можно использовать одинаковые «иклюды» для файлов, лежащих в разных папках сайта. Однако этого делать не рекомендуется, так как при смене хостера на новом сервере этот путь может отличаться и придётся исправлять код.