Проверка существования файла в PHP
Во избежание неожиданных падений сайта, вызванных недоступностью запрашиваемого на стороне back-endсодержимого, следует добавить проверки существования файлов и назначить какие-либо действия, производимые, если требуемые документы окажутся недоступны. Для этих целей подойдёт встроенный функционал PHP, имеющий простой синтаксис.
Описание функции file_exists($file);
Функция file_exists(); введена в PHP 4. Единственное заметное изменение пришлось на пятую спецификацию языка, когда в качестве расположения файла стало можно указывать протоколы по типу http://, https://, ftp://и обёртки вроде glob://, phar:// и подобных.
В качестве ответа возвращается значение вида «Булев тип», относящейся к простейшему типу хранения данных в программировании. Другими словами, в результате проверки с использованием file_exists();придёт false(«ложь») или true(«истина»).
Из-за особенностей Windows перед macOS и UNIX-системами, если сервер запущен на данной ОС, пути файлов должны указываться через обратный слеш (\), а не обычный (/). Зато в названия каталогов можно добавлять пробелы и заглавные буквы.Также важно отметить, что при запуске скрипта с file_exists();на платформе с 32-битной разрядностью возможны ошибки при проверке документов, чьи размеры превышают 2 гигабайта. Функция также доступна для папок.
Примеры использования
Проверка файла
<?
// Проверим, есть ли в папке /shop/ заглавная страница под названием index.php.
if(file_exists($_SERVER[‘DOCUMENT_ROOT’].»/shop/index.php»)) {
echotrue;
} else {
echofalse;
}
// Результат: 1 либо 0 (зависит от сайта)
Проверка директории по URL
<?
// Проверим, есть ли папка /about/ на внешнем ресурсе
if(file_exists(«https://example.net/about/»)) {
echo»На сайте есть папка about!»;
} else {
echo»На сайте нет папки about! Возможно, её никогда и не было.»;
}
// Результат: папка не найдена