Проблема с поиском информации на странице CURL, PHP Devel Studio, поможите?

И так постараюсь описать проблему как можно подробнее , написал проект на PHP Devel Studio что бы всегда знать онлайн одного сервера . На форуме сервера есть мониторинг нужной игры , что то вроде граббера сделал в PHP Devel Studio при нажатии на кнопку он должен перейти на страницу форуме найти там в определенном блоке нужную информацию

Вот код который поставил в кнопку :

global $cookie;



$ch=curl_init();
curl_setopt ($ch, CURLOPT_POST,0);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_VERIFYHOST,0);
curl_setopt ($ch, CURLOPT_FAILONERROR,1);
curl_setopt ($ch, CURLOPT_HEADERM, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt ($ch, CURLOPT_URL,'http://forum.pvp.uz');
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
$out=curl_exec($ch);
curl_close($ch);

preg_match_all('#<div style="margin-top: -18px;"><nobr><b>12 / 25</b></nobr></div>#',$out ,$matches);
$online=$matches[1][0];
        c("memo1")->text = $online;


Как я понял там нужны регулярные выражения для поиска нужной информации в нужном теге HTML , список онлайна там выводится по схеме 12 / 25 то есть на сервере 12 игроков из 25 возможных .

Сама строка где находится данные цифры вот :

<div style="margin-top: -18px;">
							
								<nobr>
									<b>18 / 25</b>
								</nobr>
							
						</div>

Там идет таблица из нескольких серверов мне же надо взять лишь первую строчку . Перепробовал уже много вариантов , никак не могу разобраться с этими регулярными вырожениями . Может можете посоветовать в чем проблема , и правильно ли я вообще делаю такую операцию .

Библиотека PHP_CURL.dll подключена!

Может кто уже делал нечто подобное?И знает в чем у меня проблема.
  • Вопрос задан
  • 665 просмотров
Решения вопроса 1
@OVK2015
$sourceContent = '<div style="margin-top: -18px;">
              
                <nobr>
                  <b>18 / 25</b>
                </nobr>
              
            </div>';
        $regExpWrapper = "#(?:<nobr>(?:.*)(?:<b>))(.*?)/(.*?)(?:</b>)#s";        

		preg_match($regExpWrapper, $sourceContent, $matches);
		echo iconv("UTF-8", "CP866", $matches[1]." из ".$matches[2]);

Сервер forum.pvp.uz у меня почему-то недоступен. Поэтому, что отдает curl проверить не смогу

Вот для www.goldcs.ru

$regExpWrapper = "#(?:\"wa-progress\")(?:.*?)(?:</div>(?:.*?)>(.*?)/(.*?)</div>)#s";
		$cURL = curl_init();
		curl_setopt ($cURL, CURLOPT_URL,'www.goldcs.ru');
		
		curl_setopt ($cURL, CURLOPT_RETURNTRANSFER,1);
		curl_setopt ($cURL, CURLOPT_SSL_VERIFYPEER, 0);
		
		$cURLResult = curl_exec($cURL);
		
		curl_close($cURL);		
		preg_match($regExpWrapper, $cURLResult, $matches);		
		echo iconv("UTF-8", "CP866", $matches[1]." из ".$matches[2]);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
riot26
@riot26
<:З )~~
$out = '<div style="margin-top: -18px;">
              
                <nobr>
                  <b>18 / 25</b>
                </nobr>
              
            </div>';
preg_match('/<div style="margin-top: -18px;">\s*<nobr>\s*<b>(.*)<\/b>\s*<\/nobr>\s*<\/div>/',$out ,$matches);
var_dump($matches);


шпаргалка по регуляркам
полигон
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы