file_exists и удаленный сервер

Jon

Новичок
Подскажите как лучше проверить существование файла на удаленом сервере (сайт в одном месте, база картинок в другом).
Или есть решение только через fopen, и не "тормознутей" ли оно чем file_exists
 

Вурдалак

Продвинутый новичок
Существование файла можно проверить по FTP, а по HTTP можно проверить только существование документа. В комментариях к file_exists() ты сможешь найти примеры.
 

Jon

Новичок
Вурдалак
угу, спасибо.
нашел реализацию через fopen, этого мне достаточно

PHP:
function fileExists($path){
     return (@fopen($path,"r")==true);
}
 

Jon

Новичок
Вурдалак
а не временозатратно ли это? если на одной странице будет отправляться 20-30 таких запросов. на получение заголовков.
 

Raziel[SD]

untitled00
а не временозатратно ли это? если на одной странице будет отправляться 20-30 таких запросов. на получение заголовков.
Нужно кэширование или вообще отдельный скрипт, который будет проверять доступность файлов.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
А есть ли смысл вообще проверять? Если сервер с картинками упал - он упал, и ничего ты проверками не сделаешь. А если не упал, то что его проверять?
 

Jon

Новичок
флоппик ну проверять на наличие фотки, т.к. в базе она может числится а на серваке нет, не хочется дыры выводить вместо картинок.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Ну так пусть у тебя твой сервак картинок отмечает в базе, что кто-то запросил картинку, которой у него нет, делов-то. И никакой лишней работы.
 

Jon

Новичок
флоппик
угу, типа такого флага и делаю. для админов, чтобы знали. а то наудаляли картинки с FTP зачем то.
 

antson

Новичок
Партнер клуба
Jon
если на хостинге картинок поддерживается php , то можно еще замутить api проверки наличия файла
с основного сервака дергаеш пхп скрипт на дочке, который по имени файла возвращает 1 - есть , -1 - нет .
Отсутвие ответа - чтото с дочерним хостингом.

другой вариант - возвращать список картинок из папки целиком, если фотки раскиданы по подпапкам
по какомоту принципу обеспечивающему их разумное кол-во в поддиректории.
транспорт может быть сжат gzipом
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Зачем проверять все, если можно помечать те, которых нет в момент запроса? А каких нет — узнает сервер картинок, когда у него запросят ее. Превентивные проверки вам ничего не дадут, поскольку сделать ничего нельзя, если картинку удалили. Точнее, ничего такого, чего бы по факту запроса не смог сделать сервер картинок самостоятельно.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Ну, я имел ввиду почти это — только не парсить, повесить обрабочик на 404 для картинок.
 
Сверху