Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нужна помощь с регуляркой
Форумы портала PHP.SU » PHP » Регулярные выражения » Нужна помощь с регуляркой

Страниц (1): [1]
 

1. Facecontrol - 11 Сентября, 2018 - 11:17:22 - перейти к сообщению
Есть таблица <table class="games"> состоит из подобных участков кода
Спойлер (Отобразить)


И мне нужно вытянуть регуляркой подобные участки
Спойлер (Отобразить)


Пробовал вот так
PHP:
скопировать код в буфер обмена
  1. preg_match_all('#<table class="games">(.*?)</table>#is', $site, $g);
  2. $r=$g[0][0];
  3. preg_match_all('#<td class="center"><abbr title="(.*?)">(.*?)</a>#is', $r, $w);

Вывело такое
Спойлер (Отобразить)

То-есть регулярка хватает лишку. Нужно чтоб подобное не попадалось:
[1]=> string(414) "Q.CanadaCanada"
И ещё нужно чтоб регулярка проверяла если в массиве попадается слово "ret.- " то такой массив нужно удалить например
Спойлер (Отобразить)

В первом варианте встретилось "ret.- " значит удаляем полностью
CODE (html):
скопировать код в буфер обмена
  1. <td class="center">
  2. <abbr title="6-2 6-2 ret.- ">
  3. <a href="https://www.tennisbetsite.com/index.php?option=com_mvx_trdb&Itemid=29&association=A&id1=59971&id2=39042&tid=15414&type=gameinfo">0:2</a>
  4. </abbr></td>


а во втором варианте не встретилось. Значит оставляем его.
PHP:
скопировать код в буфер обмена
  1. Помогите пожалуйста очень нужно...
2. difight - 13 Сентября, 2018 - 12:05:19 - перейти к сообщению
Если тебе нужно распарсить html то советую использовать библиотеки, это проще будет, например Simple HTML DOM

 

Powered by ExBB FM 1.0 RC1