Контент диапазона в тегах HTML с использованием Regex
-
18-09-2019 - |
Вопрос
Я хочу проанализировать содержание из
<td>content</td>
and
<td *?*>content</td>
and
<td *specific td class*>content</td>
Как сделать это с помощью корпорации, PHP и Preg Match?
Решение
Я думаю это Подводит итог довольно хорошо.
Короче говоря, не используйте регулярные выражения, чтобы проанализировать HTML. Вместо этого посмотрите на классы DOM и особенно Domdocument :: LoadHtml
Другие советы
Если у вас есть HTML -документ, вам действительно не следует использовать регулярные выражения, чтобы проанализировать его: HTML просто недостаточно для этого.
Гораздо лучшим решением было бы загрузить ваш HTML -документ с помощью анализатора DOM - например,, например, DOMDocument::loadHTML
а также Xpath Запросы Часто делайте действительно отличную работу!
<td>content</td>
: <td>([^<]*)</td>
<td *specific td class*>content</td>
: <td[^>]*class=\"specific_class\"[^>]*>([^<]*)<
@Op, вот один путь
$str = <<<A
<td>content</td>
<td *?*>content</td>
<td *specific td class*>content</td>
<td *?*> multiline
content </td>
A;
$s = explode("</td>",$str);
foreach ($s as $a=>$b){
$b=preg_replace("/.*<td.*>/","",$b);
print $b."\n";
}
выход
$ php test.php
content
content
content
multiline
content