Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт проверки работоспособности сайтов
 
 автор: Реаниматолог   (21.09.2009 в 21:44)   письмо автору
 
 

Уважаемые форумчане!
Администрирую каталог сайтов. Хотелось бы реализовать функцию автоматической проверки работоспособности сайтов каталога, который смог бы обойти все сайты (url-ы) хранятся в БД, в случае неработоспособности сайта(ов) отослать мне сообщение.
В литературе соответствующей информации не нашёл. Подскажите пожалуйста, каков принцип работы подобных программ, буду особенно благодарен за источники подробной информации по данному вопросу.

  Ответить  
 
 автор: serjinio   (21.09.2009 в 22:21)   письмо автору
 
   для: Реаниматолог   (21.09.2009 в 21:44)
 

Запускаете срипт по крону
из Бд выбираете url сайта ,делаете запрос ,смотрите ответ ,если 200 то все нормально ,если другой то отсылается сообщение на ваш почтовый ящик.кроме того есть нюансы ..кроме ответа 200 главной страницы (морды) желательно сканировать все ссылки данного сайта на предмет битости..

  Ответить  
 
 автор: Реаниматолог   (21.09.2009 в 23:08)   письмо автору
 
   для: serjinio   (21.09.2009 в 22:21)
 

serjinio, ссылки каталога редиректные. Возможно ли при вызове страницы с редиректом вернуть значения true или false (в зависимости от того, был ли осуществлён переход в итоге) и записать его в переменную?

  Ответить  
 
 автор: heed   (21.09.2009 в 23:59)   письмо автору
 
   для: Реаниматолог   (21.09.2009 в 23:08)
 

>с редиректом вернуть значения true или false (в зависимости от того, был ли осуществлён переход
редирект по сути всего-лишь отправка текста браузеру
, если только роль браузера не будет выполнять ваш-же скрипт переходя всётаки по ссылкам

, статус 200 так-же может возвращаться от запросов припаркованных доменных имён
, которые по сути не являются доменными именами собственно сайтов
, но думаю это небольшой процент
, только ещё есть процент где на сайтах при первом-же обращении вместо 200 тоже редирект , например чтобы перекинуть на раздел сайта на другом языке
// и временная недоступность сайтов тоже возможна

  Ответить  
 
 автор: ~AquaZ~   (24.09.2009 в 07:47)   письмо автору
 
   для: Реаниматолог   (21.09.2009 в 21:44)
 

Вот. Основано на том, что коды ошибок начигаются на 4. В функции mail() в первом аргументе замени email на свой, в 4-ом в заголовке From - на любой, это адрес отправителя. В запросе названия колонок и таблиц звменишь на свои.

<?php
function get_code($hostname,$path '/',$timeout 30){
    
$fp fsockopen($hostname,80,$errno,$errstr,$timeout);
    if (!
$fp){return "Ошибка #$errno - $errstr<br>\n";}
    else {
        
$hdr "GET $path HTTP/1.1\r\n";
        
$hdr .="Host: $hostname\r\n";
        
$hdr .="Connection: Close\n\r\n\r";
        
fwrite($fp,$hdr);
        
$line fgets($fp,1024);
        
fclose($fp);
        return 
$line;
    }
}
$list_r mysql_query("SELECT addr FROM addrlist") or die("Sorry");
while (
$list mysql_fetch_array($дist_r)){
    
$code get_code($list[0]);
    if (
preg_match('#^HTTP/[0-9]\.[0+9]{1}[\s]{1}4[0-9]{2}[\s]{1}[-a-z0-9_\s]*$#is',$code)){
        
$mail .= "<a href='$list[0]'>$list[0]</a> не найдено!";
    }
}
if (!empty(
$mail)){
    
mail("your@email.com","Битый сайт",$mail,"Content-type: text/html;charset=windows-1251\r\nFrom: My Responder <myresponder@company.com>\r\n\r\n");
}
?>


Я только-что исправил, переписал REGEXP

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования