Просмотр полной версии : Парсер под http://getdota.com/ хелп.
Наверное, есть тут дотеры, и знают о сайте http://getdota.com/ - официальный сайт. Так вот. Вверху есть строчка вида: Latest Map: "версия" (сейчас 6.57б)
ТАк вот, и в помощь игрокам решил написать парсер на PHP дабы тот любое изменение этой строки замечал и отправлял инфу на мыло, или несколько мыл.
Не знаю даже с чего начать, т.к. я новичок. Но решил, что будет полезно поупражняться.
была недавно похожая тема....
<?
$dota = file_get_contents('http://getdota.com/');
preg_match_all('|"version">(.+)</span>|',$dota, $ver, PREG_PATTERN_ORDER);
$msg = 'Latest '.$ver[1][0].' | Stable '.$ver[1][1];
mail('test@test.ru', 'Dota version', $msg);
?>
Чето я не вкурил как это работает.
Вы похоже не поняли. Скрипт не должен требовать захода на него каждый раз. Он сам должен проверять. Т.е. к примеру каждые 30 мин.
cron в помощь или добавь
ignore_user_abort();
set_time_limit(0);
и в цикл бесконечный с слипом
пишет такую ошибку:
Warning: file_get_contents(http://getdota.com/) [function.file-get-contents]: failed to open stream: Connection refused in /home/www/dotaup.100webspace.net/dota.php on line 2
Pashkela
06.01.2009, 15:27
Работай тогда через сокеты или курлы. file_get_contents далеко не всегда работает с сайтами
Работай тогда через сокеты или курлы. file_get_contents далеко не всегда работает с сайтами
знал бы я что это значит
Хелпер
<?
@set_time_limit(0);
@ini_set("max_execution_time", 0);
function get($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
$ss=curl_exec($ch);
curl_close($ch);
return $ss;
}
$a=get('http://getdota.com/');
if (preg_match_all('|>([^<>]+)<span class="version">([^<>]+)</span>|i',$a,$result,PREG_SET_ORDER))
{
$f=fopen('dota.txt','w');
fwrite($f,$result[0][1].$result[0][2]."\r\n".$result[1][1].$result[1][2]);
fclose($f);
}
?> Ставить на крон, а на страницах - инклудить файл dota.txt
гм. я как бы на мыло просил а не в файл, но спасибо
Pashkela
06.01.2009, 20:43
гм. я как бы на мыло просил а не в файл, но спасибо
борзеешь, сынок. Тебе инфу выцепили, не хочешь писать в файл (что, кстати, неплохо, в случае неудачной отсылки на мыло - ака логирование), сразу отсылай на мыло:
$to = "кому";
$ot = "от кого";
$subj = "Сабж";
$mess = $result[0][0];
mail($to, $subj, $mess, "From: ".$ot);
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot