PHP проверка сайта на доступность
curl
иопт:( А ты в нем разбираешься? Це ж, имхо, три строки написать?
Хз, я вообще не на PHP пишу, встречалось просто разок.
ясно... бум изучать
Вот есть сайтец, присылает ежедневные/еженедельные/ежемесячные отчеты о доступности сайта... Период проверки и остальное настраивается.
Не совсем то имхо.
Например - с позиции пользователя, или в ФАКе...
На одной из моих прошлых работы был хостинг. На нём было много горе-сайтов написанных на PHP. Создатели сайтов считали себя программистами, а админов хостинга - мудаками. Конечно, когда сайт начинал глючить, то виноваты были админы-мудаки. Корпоративная политика не позволяла посылать клиентов нахуй, а советовала их любить и заботиться о них. Чаще всего админы включали лог MySQL запросов и показывали программистам, что на открытие одной страницы делается 1500 запросов, из них уникальных 100, объясняли программистам, что никакой хостинг не будет быстро обслуживать такие сайты.... Отвлекся я... Короче, в один прекрасный день, позвонил клиент и объявил, что сайт не работает. Смотрим, действительно не работает - половина страницы прогружается и висит. Ну админы конечно решили, что делается какой-то очень огромный запрос в MySQL, однако это оказалось не так. httpd просто висит и всё. Почесали репы, обнаружили, что httpd висит в сисколле connect. Открыли скрипт (написанный веб-программистами и как следствие очень понятный) и стали там искать, откуда же взялся connect. Нихуя не нашли. Позвонили клиенту и сказали, что мол делает куда-то connect, разбирайтесь сами. Клиент позвонил директору и сказал, что админы-мудаки вешают ему лапшу на уши. Директор попросил админов разбираться дальше. Админы воспользовались tcpdump и увидели, что connect делается на 80 порт какого-то другого сайта. Ни IP адрес сайта, ни его DNS имя в скрипте не нашли. Еще раз просмотрели весь скрипт пытаясь найти там, что-то связанное с connect не нашли. Долго чесали репы. Один из админов в это время стал изучать базу MySQL клиента. В одной из таблиц он обнаружил куски кода на PHP. Потом в скрипте было найдено место, где код берётся из таблицы и выполняется. И в одной из записей этой таблицы была проверка сайта на доступность на PHP, которая делала GET запрос и искала в ответе ключевое слово. И как вы уже догадались, в этот прекрасный день данный сайт был недоступен.
Кстати код из таблицы вынесли и клиенту прочитали лекцию. Но нихуя! Их программист опять вставил проверку назад, и в другой прекрасный день клиент опять звонил.
Нарошно не придумаешь...
Поотрывал бы руки нах!
Понаберут умников за 200$ на работу....
Мне это нужно сделать один раз и мне не очень хочется тыкать мышкой в полторы тысячи адресов, чтоб выяснить, что доступно, а что - нет.
где нить в мануале смотри...
А что бы намека небыло - поставь как нить обработку ошибки... Если повиснет нах...
Есть же уже написаные программы, которые умеют проверять списки адресов.
А трафика они кушают при этом сколько? Чтоб только заголовки получить или всю страницу грузят? Поделись названием хоть одним...
http://curl.haxx.se/libcurl/php/examples/?ex=simpleget.php
Если нужно только заголовок, то добавь
curl_setopt ($ch, CURLOPT_NOBODY, 1);
Большой список всё равно не получается - отрубает по таймауту. URL-чекерами действительно всё получается хорошо.
Слушайте, я не пробовал, не знаю, но если просто обратиться к странице и считать её текст разве нельзя отловить, существует она или нет?
_________________________________
- Завтра мы открываем новую страницу нашей жизни.
- По-моему, это бессмыслица, - сказал Леопольд. - Когда открываешь новую страницу, видишь всего-навсего обратную сторону предыдущей.
А если сервер заголовок отдаёт, а дальше рвёт связь или подвисает?
_______________________________
- Девочки, я вам тысячу раз говорила, все хорошие парни слабоваты в постели и занудны. Но что подсказывает практика?
- Интересные мужчины тоже становятся занудами, а плохие тоже слабоваты в постели, - ответили мы хором.
Чаще, чем хотелось бы.
> Вдруг заберете страницу, а сервер станет недоступен через секунду?
Тогда мы всё ещё будем знать, что секунду назад он смог отдать страницу.
И почему вообще не нравится обычный fsockopen c таймаутом, например, 10-20?
В каком смысле вообще возникает таймаут? max_execution_time в php не учитывает время коннекта, время запроса к базе данных и пр.
Оставить комментарий
uncle17
есть список УРЛов. Можно ли как-то проверить скриптом доступность их в данный момент времени? Не учитывая специализированные странички под 404...