Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Получить цифру методом preg_match


Автор: Muerto 19.5.2010, 14:18
Получаю данные методом curl, вот кусок страницы
Код

 $str = '<span class="gt">Положительных отзывов: <span class="gt020">88</span></span></a><BR/><a href="FeedBackLi';
   preg_match('хз что', $str, $matches);
   print_r($matches);


Помогите пожалуйста как вот поймать цифру 88?

пытался так:
Код

 preg_match('<span class="gt020">[0-9]{2}</span></span></a><BR/><a', $str, $matches);


Но print_r пуст... наверно я что то не понимаю, не наверно а точно...

Автор: Flam 19.5.2010, 14:34
 Ну если в   <span class="gt020">  всегда нужные цифры, то так:

Код

preg_match('#<span class="gt020">(\d+)</span>#', $str, $matches);
echo($matches[1]);

Автор: Muerto 19.5.2010, 14:41
Я сделал ещё пару изменений, что бы и gt и lt вылавливало (т.е. положительные и отрицательные отзывы
выходит такое(print_r output)-
Код

Array ( [0] => Array ( [0] => 88  [1] => 4  ) [1] => Array ( [0] => gt [1] => lt ) [2] => Array ( [0] => 88 [1] => 4 ) ) 

как бы вышел двух мерный масив, не ясно почему... я могу им пользоватся в таком виде в форме $value[2][0] и тп, но как бы не оч удобно и красиво


Кстати для тех кто в будущем может найдет эту тему в гугле или поиске, этот preg_match уловит отзывы 
http://advisor.wmtransfer.com/feedbacklist.aspx?url=promote-it.ru
88 положительных и 4 отрицательных!
отрицательные и положительные!
user posted image

Автор: Flam 19.5.2010, 15:18
если я правильно понял, что нужно делать (получить количество положительных и отрицательных отзывав о каком-нибудь сайте с  wmtransfer.ru),  то  я бы набыдлокодил так - 

Код

$site = 'promote-it.ru';
$str = file_get_contents("http://advisor.wmtransfer.com/feedbacklist.aspx?url=$site");
preg_match_all('#<span class="[gl]t\d+">(\d+)</span>#', $str, $matches);
 $positive_rep = $matches[1][0];
 $negative_rep = $matches[1][1];



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)