Проверка на существование файла?

DEEX

Guest
Проверка на существование файла?

Как можно проверить или существует данный файл в сети (тоесть в инете). Или можно сделать это посредством Curl или еще както?
 

ksnk

прохожий
Обычно это делают с помощью ramblera или еще кого... Стырить результаты правильной работы поисковика значительно проще, чем писать своего
 

DEEX

Guest
Да нет. мне нужно проверить например или существует такой файл: http://www.rambler.ru/zip.zip Если да то 1 если нет то 0.
Вот как-то это можно организовать. Мне кажеться что нет. Но я всетаки хочу удостовериться может кто-то всетаки это сделал?
 

ksnk

прохожий
можно открыть его fopen и прочитать первые 2 байта. Если получаем 'PK' - то с большой вероятностью - это ZIP :)
Или читаем дальше...
если пошел HTML (обычно достаточно увидеть в тексте теги <head.*>,<body.*>) - то, скорее всего - ничего нету. Ну а если fopen выругался - то и точно нету...
 

DEEX

Guest
ksnk последний раз я когда пытался так что-то прочитать... у меня fopen ругался... помойму хостинг неразрешает.... и так помойму у многих..
 

ksnk

прохожий
Хмм... Как правило, файлы грузяться не напрямую, а скриптами-загрузчиками. к примеру твой http://www.rambler.ru/zip.zip может на самом деле валяться совсем даже не в корне сайта и эта ссылка приведет тебя на страничку, из которой через несколько итераций ты может быть и получишь файл. В таком случае какой ответ должна давать функция - есть файл с таким именем или нет?
 

DEEX

Guest
Если такого файла в корне нет, то тогда показать мне что даного файла там нет. А то может та ссылка меня кудо приведет мне не надо...
 

Фанат

oncle terrible
Команда форума
не пора ли товарищу ksnk в Read-only, с его мудрыми советами?
 

jdoe

Новичок
проверять ты можешь не существование файла (а хто его знает, какие там на сервере файлы), а код ответа http-сервера. циферки 200, 404 и т.п, думаю тебе знакомы, так что fsockopen, ну или curl. во втором случае не припомню, в первом - шли запрос и первую же строчку и смотри...

только на фига это надо.
 

DEEX

Guest
Вобщем прикол в том что у себя на сайте я выкладываю софтинку интересненькую.. Ну а сайта разростаеться. И вот надо написать скрипт который я запускаю и вижу что ссылочка какаято фуфловая и надо ее удалить. Вот так. Блин ето наверно если через fsockopen делать наверно долго будет что мрак.
 

jdoe

Новичок
смотри.
есть у тебя URL:

http://www.site.ru/folder/file.zip

с помощью parse_url разбиваешь его на компоненты

с помощью fsockopen открываешь сокет на www.site.ru порт 80
отправляешь туда с помощью fwrite запрос
HEAD /folder/file.zip HTTP/1.0\r\n
Host: www.site.ru\r\n
\r\n

читаешь с помощью fgets одну строку ответа
там будет что-то вроде HTTP/1.1 200 OK или HTTP/1.1 404 Not Found
то есть интересующее тебя число всегда на одной и той же позиции, то есть просто вырезаешь из заранее известного места строки 3 символа - это и будет искомый код ответа.

всё.
 

DEEX

Guest
все понятно. щас буду побывать. только зачем с помощью parse_url разбирать?
 

jdoe

Новичок
ну если у тебя заранее известны отдельно www.site.ru и /folder/file.zip, можешь не разбирать. ;)

я так понимаю, тебе далеко не один url надо проверить?
 

DEEX

Guest
да так. их гдето 50 штук. и они постоянно растут.
 
Сверху