Intereting Posts
Javascript «unescape» в PHP Добавьте некоторые html в формы Zend Создание многомерного массива из таблицы базы данных PHP блокировать текстовый файл для редактирования? В чем смысл интерфейсов на слабо типизированном языке, например PHP? Рекурсивный mod_rewrite для дружественных поисковых запросов Вызов php-файла с помощью mysql trigger Регулярное выражение Codeigniter Неопределенный индекс при группировании и суммах в многомерном массиве Комментарий API SDK и графика в Facebook. Ошибка удаления. Зачем объявлять тип переменной PHP в комментарии? Испытательное соединение Laravel с SOAP WDSL и обработка исключений установить zend framework без виртуальных хостов apache Как отображать адрес электронной почты для пользователей, но скрывать от робота? Есть ли простой способ сделать это с помощью PHP, Javascript или JQuery? Где запрос после whereHas не работает так, как следует в Laravel 5.4

Проверьте, существуют ли файлы с абсолютным и относительным путем

Есть ли способ проверить, существуют ли файлы (с абсолютным или относительным путем)? Я использую PHP. Я нашел пару методов, но либо они принимают только абсолютные или относительные, но не оба. Благодарю.

file_exists($file); делает трюк как для относительных, так и для абсолютных путей.

Что более полезно, тем не менее, имеет абсолютные пути без жесткого кодирования. Лучший способ сделать это – использовать dirname(__FILE__) который получает полный путь каталога к текущему файлу в формате ether unix формата Windows. Затем мы используем realpath() который удобно возвращает false, если файл не существует. Все, что вам нужно сделать, это указать относительный путь из каталога этого файла и собрать все вместе:

 $path = dirname(__FILE__) . '/include.php'; if (realpath($path)) { include($path); } в $path = dirname(__FILE__) . '/include.php'; if (realpath($path)) { include($path); } 

Вы можете использовать realpath для проверки наличия файла в указанном пути и получения расширенного пути к этому файлу:

 $absPath = realpath($path); if ($absPath === false) { // invalid path } 

file_exists($path) будет проверять абсолютный путь или относительно места расположения скрипта. Если вы хотите проверить относительно корня документа, вы можете попробовать file_exists("{$_SERVER['DOCUMENT_ROOT']}path");

Если вам нужна функция, которая будет принимать как относительные, так и абсолютные пути, что-то вроде этого должно работать (непроверено):

 function check_file($path) { return ( file_exists($path) || file_exists("{$_SERVER['DOCUMENT_ROOT']}path") ); }