$head = get_headers('http://' . $site . '/favicon.ico'); preg_match('|s[d]{3}s|',$head[0],$request_code); $request_code = trim($request_code[0]); if ($request_code == '200') { return true; } else { return false; }
но работает долго и почему-то не всегда правильно. Как лучше реализовать такую проверку?
Спустя 1 час, 14 минут, 59 секунд (15.12.2006 - 23:27) vasa_c написал(а):
Протокол http работает не с файлами, а с документами. Так что точно узнать какие файлы лежать на каком-то чужом сервере, по http невозможно (а тебе хотелось бы, чтобы на твои серверы лезли все подряд?).
Ну а наличие документа, действительно, проверяется единственным образом — запросом этого документа.
Можно делать не через get_headers(), а напрямую через fsockopen(). И можно попробывать запрос "HEAD" (то же, что GET, но не тянет за собой тело ответа). Хотя HEAD, уже, кажется, устарел.
Ну а наличие документа, действительно, проверяется единственным образом — запросом этого документа.
Можно делать не через get_headers(), а напрямую через fsockopen(). И можно попробывать запрос "HEAD" (то же, что GET, но не тянет за собой тело ответа). Хотя HEAD, уже, кажется, устарел.