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

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

 uji13 нояб. 2009 г., 18:16
я забыл упомянуть, в чем логика этого, если в удаленном URL-адресе для замены файла не существует файла в корневой проверке документа. Я думаю плохо попробую Робаответ. Спасибо, парни

Ответы на вопрос(3)

Ты можешь использоватьrealpath проверить, существует ли файл по указанному пути и получить расширенный путь к этому файлу:

$absPath = realpath($path);
if ($absPath === false) {
    // invalid path
}
Решение Вопроса

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

Какие'Однако более полезно иметь абсолютные пути без жесткого кодирования. Лучший способ сделать это - использоватьdirname(__FILE__) который получает каталогs полный путь к текущему файлу в эфирном формате UNIX или Windows. Тогда мы можем использоватьrealpath() который удобно возвращает false, если файл не существует. Все, что вам нужно сделать, это указать относительный путь из этого файла.s каталог и собрать все это вместе:

$path = dirname(__FILE__) . '/include.php';
if (realpath($path)) {
    include($path);
}
 Pierre26 окт. 2011 г., 14:46
realpath () возвращает канонический путь, поэтому удалите символические ссылки. Есть ли способ избежать этого и проверить путь абсолютный, даже если не канонический?
 unkown12 июл. 2012 г., 07:53
хорошие педагогические навыки

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

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

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

Ваш ответ на вопрос