[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка есть ли изображение
sg.com
file_exists, is_file, is_readable ?

есть ли разница чем проверять существует ли такой-то файл?

интересно бы узнать простыми словами:

что означает замечание (для file_exists) - возвращает false для символических ссылок, указывающих на несуществующие файлы?

еще есть замечание что функция проверяет реальные UID/GID а не эффективные идентификаторы?

и что такое символическая ссылка и эффективные идентификаторы?
sg.com
нашел такое:
Цитата
file_exists: Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.чтоб проверять через нее надо в path передавать реальный path а не symlink.

наверное это значит что путь к файлу должен быть не в виде url
FatCat
Цитата (sg.com @ 18.02.2025 - 13:28)
наверное это значит что путь к файлу должен быть не в виде url

Юникс поддерживает симлинки — файлы переадресации.
Пример:
На сервере есть директории phpforum.su и e-liq.su — 2 разных форума.
Второй умер, и домен я не стал продлевать. Но иногда мне нужен доступ к материалам умершего форума.
Внутри директории phpforum.su я сделал файл симлинка по имени e-liq.su, переадресующий на директорию e-liq.su.
И теперь есть доступ по ссылке http://phpforum.su/e-liq.su/

_____________
Бесплатному сыру в дырки не заглядывают...
Guest
такой пример нашел:
if (!file_exists('http://example.com/images/thumbnail_1286954822.jpg')) {   
$filefound = '0';
}

у меня на локалке так не работает, нужно не http://example.com писать, а /DOCUMENT_ROOT/, тогда работает

такой еще пример:
function check_file_exists_here($url){
$result=get_headers($url);
return stripos($result[0],"200 OK")?true:false; //check if $result[0] has 200 OK

но так, на локалке опять не работает, даже если файла нету, все равно приходит ответ "200 ОК", но в $result[4] если есть файл тогда есть ETag, если файла нет то ETag нет, наверно так можно проверить если по url

симлинк - это, как понял, это файл, который не совсем тот файл, а его ярлык
sg.com
Цитата
is_file — Сообщает, ведёт ли путь к стандартному файлу

возвращает true/false

Цитата
file_exists — Проверяет существование указанного файла или каталога

возвращает true/false

Цитата
is_readable — Определяет существование файла и доступен ли он для чтения

возвращает true/false, функция может возвращать true для директорий

дошло, получается если нужно проверить что это файл (ни директория), то нужно использовать is_file, если могут быть нечитаемые файлы то is_readable, если без разницы файл это или каталог то file_exists

// вопрос закрыт, хотя - а что такое стандартный (и не стандартный) файл
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.