我想在数组中获取所有带有类名的html标签。 喜欢
< a class="abc"></a>, < h2 class="xyz"> </h2>
我希望数组中有<a>
和abc
以及<h2>
和xyz
。我无法找到任何逻辑来得到它。我正在尝试preg_replace
和preg_replace_all
,但无法获得任何解决方案。
答案 0 :(得分:0)
有人聪明曾经说过你不应该自己过滤掉dom,与正则表达式的熟练程度无关紧要......所以不要这样做。
无论如何:
$html = 'Foobar <a href="link" class="abc" style="sda">anchor</a>,space <h2 class="xyz">heading</h2>text betewwn <a href="foo">anchor 2</a>';
preg_match_all('|<a[^>]*(?:class=["'."'".']([^"'."'".']*)["'."'".'])[^>]*>(.*?)<\/a>|sim', $html, $matches);
var_dump($matches);
// Output:
array(3) {
[0] =>
array(1) {
[0] =>
string(49) "<a href="link" class="abc" style="sda">anchor</a>"
}
[1] =>
array(1) {
[0] =>
string(3) "abc"
}
[2] =>
array(1) {
[0] =>
string(6) "anchor"
}
}
这将找到所有带有类的标签。