PHP: is_file и file_exists работают локально, но не работают на сервере

Tags: php

Функции is_file() и file_exists() в PHP служат для проверки наличия файла. Когда тестировал страницу локально, работали без проблем. Залил на сервер, не работают.

$albumFilePath = "images/albums/" . $albumName . "/album.html";
if(is_file($albumFilePath)) {
    // Album does exists.
    // Show it's page.
    include($albumFilePath);
}

Методом научного тыка выяснилось, что на моём хостинге в этих функциях (и им подобных) почему-то нельзя использовать относительные пути. Выход очевиден: использовать абсолютные пути. Для этого достаточно добавить в начале пути значение переменной среды $_SERVER[DOCUMENT_ROOT] и не забыть добавить слэш после неё.

$albumFilePath = $_SERVER["DOCUMENT_ROOT"] . "/images/albums/" . $albumName . "/album.html";
if(is_file($albumFilePath)) {
    // Album does exists.
    // Show it's page.
    include($albumFilePath);
}