[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Мониторинг сайтов
Wladim
Здравствуйте.
При регистрации на сайте пользователь указывает URL сайта, где размещён мой баннер. Для периодической проверки присутствия баннера на сайте пользователя есть, конечно же, программы, в которых вручную надо вводить URL сайтов пользователей и URL баннера. Нашёл даже простой скрипт для вставки на сайте, но снова - надо вручную вводить URL сайтов пользователей. Вот он:
<form action='checker.php' method='POST'>
<
p>URL для поиска:<br/>
<
input type='text' value='<?=isset($_POST['url'])?$_POST['url']:''?>' name='url' /></p>
<
p>Проверяемые адреса:<br/>
<
textarea name='sites' rows='10' cols='80'>
<?=isset($_POST['sites'])?$_POST['sites']:''?>
</textarea></p>
<
p><label>
<
input type='checkbox' value='' name='deep_search' <?=isset($_POST['deep_search'])?'checked':''?>/>
искать дочерние URL сайта</label></p>
<
p><input type='submit' value='Начать проверку' name='go' /></p>
</
form>
<?
if (isset($_POST) and !empty($_POST['url']))
{
if ($_POST['url']{strlen($_POST['url'])-1}!=="/")
$_POST['url'] .= "/";

$_POST['url'] = str_replace("/", "\/", $_POST['url']);

$sites = explode("\n", $_POST['sites']);

foreach ($sites as $site)
if (!empty($site))
{
$ch = curl_init (); // инициализация
curl_setopt ($ch , CURLOPT_URL , $site); // адрес страницы для проверки
// каким браузером будем прикидываться

curl_setopt ($ch , CURLOPT_USERAGENT ,
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
// нам нужно вывести загруженную страницу в переменную
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );

$content = curl_exec($ch); // скачиваем страницу
curl_close($ch); // закрываем соединение

if (isset($_POST['deep_search']))
$regex_str = "/<a.+href=(\"|')".$_POST['url'].".+(\"|').+>.*<\/a>/isU";
else
$regex_str = "/<a.+href=(\"|')".$_POST['url']."?(\"|').+>.*<\/a>/isU";

if(preg_match_all($regex_str, $content, $matches)) // ищем ссылку с нашим URL
echo "[OK] $site<br/>"; // найдена
else
echo "[NOT FOUND] $site<br/>"; // не найдена

flush(); // сразу выводим результат на экран, не дожидаясь окончания работы скрипта
}
}

?>

Попробовал вместо формы (которую предлагал найденный скрипт) выбрать из БД из столбца site таблицы z_anketa все URL и использовать результат в работе скрипта.
И вот какие возникли проблемы:
1. Выборка из БД из столбца site таблицы z_anketa всех URL не получилась: выбирается только 1шт из 4-х:
$result = mysql_query("SELECT `site` FROM `z_anketa` WHERE 1", $db);
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_assoc($result);
while ($myrow = mysql_fetch_assoc($result))
{
print '<p>'. htmlspecialchars($myrow["site"]) .'</p>';
}
Почему так - не могу понять...
2. Не получается связать даже этот куцый результат с немного доработанным скриптом:
$_POST['url'] = 'http://serv.net/service/';

if (isset($_POST) and !empty($_POST['url']))
{
if ($_POST['url']{strlen($_POST['url'])-1}!=="/")
$_POST['url'] .= "/";
$_POST['url'] = str_replace("/", "\/", $_POST['url']);
$sites = explode("\n", $myrow2['site']);
foreach ($sites as $site)
if (!empty($site))
{
$ch = curl_init (); // инициализация
curl_setopt ($ch , CURLOPT_URL , $site);
curl_setopt ($ch , CURLOPT_USERAGENT ,
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7");
curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 );
$content = curl_exec($ch); // скачиваем страницу
curl_close($ch); // закрываем соединение

if (isset($_POST['deep_search']))
$regex_str = "/<a.+href=(\"|')".$_POST['url'].".+(\"|').+>.*<\/a>/isU";
else
$regex_str = "/<a.+href=(\"|')".$_POST['url']."?(\"|').+>.*<\/a>/isU";

if(preg_match_all($regex_str, $content, $matches))
echo "[OK] $site<br/>"; // найдена
else
echo "[NOT FOUND] $site<br/>"; // не найдена

flush();
}
}

Выводится результат: "[NOT FOUND] site"
Не знаю, как и где в скрипте использовать $myrow
Где-то я, наверное, ошибаюсь...

_____________
в Начале было СЛОВО, а потом - словоЗАслово и ... как поехало! http://a-plagiata.net/service/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.