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. android - 05 Августа, 2013 - 19:44:22 - перейти к сообщению
Есть html:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <td class="row4 small nowrap tor-size">
  3.                 <u>93138666</u>
  4.                 <a class="small tr-dl dl-stub" href="link_go">89&nbsp;MB &#8595;</a>    </td>
  5.  


Дело в том что ссылки может и не быть, и тогда html станет таким:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <td class="row4 small nowrap tor-size">
  3.                 <u>93138666</u>
  4.                 89&nbsp;MB &#8595;      </td>
  5.  



Вопрос как вырезать "89&nbsp;MB ↓", но одновременно сделать проверку на наличие этой ссылки.

Т.е - нет ссылки - 0
есть ссылка - 1

Можно ли сделать это одной регуляркой?

Подскажите пожалуйста
2. Мелкий - 05 Августа, 2013 - 20:03:52 - перейти к сообщению
CODE (regexp):
скопировать код в буфер обмена
  1. ~<td class=\"row4 small nowrap tor-size\">.*\n\s+(<a[^>]*>([^>]+?)</a>|[^>]+?)\s+</td>~is

Если существует второе совпадение подмаски - значит ссылка + значение ссылки, если только одна подмаска - без ссылки.
3. NoPaper - 05 Августа, 2013 - 20:05:46 - перейти к сообщению
можно и без регулярки
PHP:
скопировать код в буфер обмена
  1. $str = '<td class="row4 small nowrap tor-size">....';
  2. $str=str_replace('89&nbsp;MB','',$str);
  3. $is_href=stripos($str,'<a class=');
  4.  
4. android - 05 Августа, 2013 - 20:47:02 - перейти к сообщению
Мелкий Спасибо, получилось.

 

Powered by ExBB FM 1.0 RC1