Нужна помощь при обработке данных с форума

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

Azter

Постоялец
Регистрация
11 Дек 2006
Сообщения
116
Реакции
125
Приветствую!
В общем нужно помощь)))
Сам вопрос такой - есть скрипт который собирает ники юзерей с vbulletin форума, он это делает посредством открывания профиля /member.php?u=ид юзеря, и грабинга текста после"просмотр профиля:"
Но в булке под каждым ником подписана группа. И вот я очень хочу модифицировать этот скрипт таким образом что-б можно было грабить по определеным групам. Т.е. пример:
avstrija.com/forum/member.php?u=3798 - Группа "Новичок"
avstrija.com/forum/member.php?u=6744 - Группа "пионер-герой"
Хочеться что-б скрипт брал только ники тех юзерей которые имеют группу "пионер-герой"
вот функция грабинга юзерей
Код:
$handle = fopen($list, "w");
if ($all === 1) {$startpos = 1; $endpos = $count[1]; echo "<b>[i]switched to full mode</b><br>";}
else {echo "<b>[i]grabbing from $startpos to $endpos</b><br>";}
for ($u = $startpos; $u <= $endpos; $u++)
        {
        $sock = fsockopen($host, 80, $errno, $errstr, 10);
        if (!$sock) {$u = $u - 1; echo "socket error at $u - retrying"; continue;}
        stream_set_timeout($sock, 60);
        fputs($sock, "GET http://$path/member.php?u=$u HTTP/1.1\r\n");
        fputs($sock, "Host: $host\r\n");
        fputs($sock, "Connection: Close\r\n\r\n");
        while (!feof($sock))
        {
                $line = fgets($sock);
                $nick = preg_split("/просмотр профиля:\s|<\/title>/i", $line);
                if ($nick[1]) {break;}
        }
        if ($nick[1] === "\r\n") {continue;}
        if (empty($nick[1])) {if ($all === 1){$u = $u -1;} continue;}
        if (!preg_match("/[а-я]+/i", $nick[1]))
        {
                $str = $nick[1]."\r\n";
                //$str = $nick[1]."\r\n";
                fwrite($handle, $str);
                echo "$u: $str<br>";
                $i = $i + 1;
        }
        fclose($sock);
        }
fclose($handle);
Вот в этом участке
Код:
   {
                $line = fgets($sock);
                $nick = preg_split("/просмотр профиля:\s|<\/title>/i", $line);
                if ($nick[1]) {break;}
        }
        if ($nick[1] === "\r\n") {continue;}
        if (empty($nick[1])) {if ($all === 1){$u = $u -1;} continue;}
        if (!preg_match("/[а-я]+/i", $nick[1]))
Нужно рыть, но увы я еще очень слабо понимаю пхп что-б сделать это самостоятельно (((
Огромное спасибо!
 
Код:
preg_match_all ("/<div class=\"smallfont\">(.*?)<\/div>/", $line, $matches);
if ($matches[1][0]=="пионер-герой")    {
//тут уже делаеш все операции с записью и т.д.
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху