Почекать базу ссылок php скриптом?

Статус
В этой теме нельзя размещать новые ответы.

allsu

Постоялец
Регистрация
29 Дек 2007
Сообщения
135
Реакции
5
Подскажите возможно ли организовать скрипт на php для проверки базы ссылок на работоспособность?
(если не бесплатно то сколько будет стоить такой скрипт)
Т.е. есть база ссылок каталогов или гостевых и т.п.
необходимо проверить ссылки на работоспособность.

Может существуют готовые решения для этих целей?
Буду очень благодарен за добрый ответ совет!
 
Делается элементарно - запрашивать ссылки (сокетами или курлом) и сверять код ответа.
 
Считай файл с линками в массив
Для просмотра ссылки Войди или Зарегистрируйся
Далее делай head запрос по списку
например так
Код:
$fp = fsockopen("vkontakte.ru", 80, $errno, $errstr, 30);
if (!$fp) { echo "$errstr ($errno)<br>"; } else {
    $out = "HEAD http://vkontakte.ru/ HTTP/1.0\r\n";
    $out .= "Host: vkontakte.ru\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $answ = fgets($fp, 128);
    fclose($fp);
}
И анализируй код ответа
 
к примеру база ссылок идет в след форме в файле link.txt
Код:
mail.ru
vodka.ru
pivo.ru
поехали кодить...

читаем все ссылки и одновременно проверяем на работоспособность, используем код Kaimi

Код:
set_time_limit(0);

function download($url)
{
$fp = fsockopen($url, 80, $errno, $errstr, 60);
if ($fp) {
    $out = "HEAD http://".$url."/ HTTP/1.0\r\n";
    $out .= "Host: ".$url."\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $answ = fgets($fp, 128);
    fclose($fp);
    return $answ;
}

};


$handle = fopen("./link.txt", "r");
	while (!feof($handle)) 
{
	$buffer = fgets($handle, 4096);
	$buffer=trim($buffer);
	$rezult=download($buffer);
	if(strstr($rezult,"200")){echo $buffer." OK \n";}else{echo $buffer." FUCK \n";};
}
fclose($handle);
 
к примеру база ссылок идет в след форме в файле link.txt
Код:
mail.ru
vodka.ru
pivo.ru
поехали кодить...

читаем все ссылки и одновременно проверяем на работоспособность, используем код Kaimi

Код:
set_time_limit(0);

function download($url)
{
$fp = fsockopen($url, 80, $errno, $errstr, 60);
if ($fp) {
    $out = "HEAD http://".$url."/ HTTP/1.0\r\n";
    $out .= "Host: ".$url."\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $answ = fgets($fp, 128);
    fclose($fp);
    return $answ;
}

};


$handle = fopen("./link.txt", "r");
	while (!feof($handle)) 
{
	$buffer = fgets($handle, 4096);
	$buffer=trim($buffer);
	$rezult=download($buffer);
	if(strstr($rezult,"200")){echo $buffer." OK \n";}else{echo $buffer." FUCK \n";};
}
fclose($handle);

пробую тестить
ошибку выдаёт :((
 
ааа, у тебя вот как.

добавь функцию разделения каждой строки на
"сайт.домен" и "путь/до/скрипта"
и поправь это в функцию давнлоад

сейчас поправлю, там еще ошибку нашел
и еще вопрос, у тебя все ссылки вида :
Для просмотра ссылки Войди или Зарегистрируйся.........
?
 
Код:
<?php
function download($site,$url)
{
$fp = fsockopen($site, 80, $errno, $errstr, 60);
if ($fp) {
    $out = "HEAD ".$url." HTTP/1.0\r\n";
    $out .= "Host: ".$site."\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $answ = fgets($fp, 128);
    fclose($fp);
    return $answ;
}

};


$handle = fopen("./link.txt", "r");
	while (!feof($handle)) 
{
	$buffer = fgets($handle, 4096);
preg_match("!http://(.*?)/(.*?)\n!si",$buffer,$ok);
$rezult=download($ok[1],"/".$ok[2]);
     if(strstr($rezult,"200 OK")){echo $buffer." OK \n";}else{echo $buffer." FUCK \n";};
}
fclose($handle);

?>
 
Код:
<?php
function download($site,$url)
{
$fp = fsockopen($site, 80, $errno, $errstr, 60);
if ($fp) {
    $out = "HEAD ".$url." HTTP/1.0\r\n";
    $out .= "Host: ".$site."\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    $answ = fgets($fp, 128);
    fclose($fp);
    return $answ;
}

};


$handle = fopen("./link.txt", "r");
	while (!feof($handle)) 
{
	$buffer = fgets($handle, 4096);
preg_match("!http://(.*?)/(.*?)\n!si",$buffer,$ok);
$rezult=download($ok[1],"/".$ok[2]);
     if(strstr($rezult,"200 OK")){echo $buffer." OK \n";}else{echo $buffer." FUCK \n";};
}
fclose($handle);

?>

обновил файл но так и не работает:nezn:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху