如何从HTML代码中获取所有标签?
问题描述:
如何从字符串中的HTML代码中获取所有标记?如何从HTML代码中获取所有标签?
例子:
$HTML = <<<HTML
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<p id="main">Hello World!</p>
<img src="wallpaper.png">
</body>
</html>
HTML;
getTags($HTML);
打印出来(返回数组) - 标签:
array(html, head, meta, title, body, p, img)
或
打印出来 - 标签与id属性:
array(html, head, meta, title, body, [p, main], img)
刚仅供参考,我是HTML新手。
答
该做的一切,但打印出来的ID,但它不应该太难搞清楚:
<?php
$html = '<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<p id="main">Hello World!</p>
<img src="wallpaper.png">
</body>
</html>';
$dom = new DOMDocument();
$list=array();
$dom->loadHTML($html);
$elements = $dom->getElementsByTagName('*');
foreach($elements as $child)
{
$list[]= $child->nodeName;
}
?>
答:
Array ([0] => html [1] => head [2] => meta [3] => title [4] => body [5] => p [6] => img)
+0
非常感谢! – Slowaways 2014-08-31 01:42:33
答
使用HTML解析器读取字符串。快速谷歌表示,你可以直接使用PHP做到这一点:http://php.net/manual/en/domdocument.loadhtml.php
我相信也有其他体面的HTML解析器可用。
的定界符不具有相关性的问题。 '$ HTML'是一个像其他任何字符串一样的字符串。 – Havenard 2014-08-31 00:59:17
@Havenard所以我必须声明'$ Html'只能作为一个字符串? – Slowaways 2014-08-31 01:04:54
你已经是。 – Havenard 2014-08-31 01:10:06