Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Парсер под http://getdota.com/ хелп. (https://forum.antichat.xyz/showthread.php?t=99733)

Хелпер 06.01.2009 12:45

Парсер под http://getdota.com/ хелп.
 
Наверное, есть тут дотеры, и знают о сайте http://getdota.com/ - официальный сайт. Так вот. Вверху есть строчка вида: Latest Map: "версия" (сейчас 6.57б)
ТАк вот, и в помощь игрокам решил написать парсер на PHP дабы тот любое изменение этой строки замечал и отправлял инфу на мыло, или несколько мыл.
Не знаю даже с чего начать, т.к. я новичок. Но решил, что будет полезно поупражняться.

Zitt 06.01.2009 12:51

была недавно похожая тема....

Kaimi 06.01.2009 13:07

PHP код:

<?
$dota 
file_get_contents('http://getdota.com/');
preg_match_all('|"version">(.+)</span>|',$dota$verPREG_PATTERN_ORDER);
$msg 'Latest '.$ver[1][0].' | Stable '.$ver[1][1];
mail('test@test.ru''Dota version'$msg);
?>


Хелпер 06.01.2009 14:05

Чето я не вкурил как это работает.

Kaimi 06.01.2009 14:16

http://php.su/learnphp/

Хелпер 06.01.2009 14:17

Вы похоже не поняли. Скрипт не должен требовать захода на него каждый раз. Он сам должен проверять. Т.е. к примеру каждые 30 мин.

Kaimi 06.01.2009 14:21

cron в помощь или добавь
ignore_user_abort();
set_time_limit(0);

и в цикл бесконечный с слипом

rushter 06.01.2009 14:38

cronjob.ru

Хелпер 06.01.2009 15:22

пишет такую ошибку:
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 далеко не всегда работает с сайтами

Хелпер 06.01.2009 15:31

Цитата:

Сообщение от Pashkela
Работай тогда через сокеты или курлы. file_get_contents далеко не всегда работает с сайтами

знал бы я что это значит

Gifts 06.01.2009 17:16

Хелпер
PHP код:

<?

    
@set_time_limit(0);
    @
ini_set("max_execution_time"0);
    function 
get($url)
    {
        
$ch curl_init();  
        
curl_setopt($chCURLOPT_URL,$url);
        
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
        
curl_setopt($chCURLOPT_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

Хелпер 06.01.2009 20:37

гм. я как бы на мыло просил а не в файл, но спасибо

Pashkela 06.01.2009 20:43

Цитата:

Сообщение от Хелпер
гм. я как бы на мыло просил а не в файл, но спасибо

борзеешь, сынок. Тебе инфу выцепили, не хочешь писать в файл (что, кстати, неплохо, в случае неудачной отсылки на мыло - ака логирование), сразу отсылай на мыло:

PHP код:

$to "кому"
$ot "от кого"
$subj "Сабж"
$mess =  $result[0][0];
  
mail($to$subj$mess"From: ".$ot); 


Хелпер 06.01.2009 21:06

СПС всем


Время: 22:45