我花了时间在正则表达式上解决这个问题但没有结果
我尝试使用 PHP 5.3 解决这个问题
诸如 - 在页面中重复的次数以及有关页面中所有标签的信息等信息。
不幸的是,您的问题目前的形式几乎无法理解。请尝试更新并更具体。如果你想计算页面中所有 HTML 标签的数量, 你可以做:
$HTML = <<< HTML
<html>
<head>
<title>Some Text</title>
</head>
<body>
<p>Hello World<br/>
<img src="earth.jpg" alt="picture of earth from space"/>
<p>
<p>Counting Elements is easy with DOM</p>
</body>
</html>
HTML;
使用 DOM 计算所有 DOM 元素:
$dom = new DOMDocument;
$dom->loadHTML($HTML);
$allElements = $dom->getElementsByTagName('*');
echo $allElements->length;
上面会输出8
,因为 DOM 中有八个元素。如果您还需要了解元素分布, 你可以做
$elementDistribution = array();
foreach($allElements as $element) {
if(array_key_exists($element->tagName, $elementDistribution)) {
$elementDistribution[$element->tagName] += 1;
} else {
$elementDistribution[$element->tagName] = 1;
}
}
print_r($elementDistribution);
这将返回
Array (
[html] => 1
[head] => 1
[title] => 1
[body] => 1
[p] => 2
[br] => 1
[img] => 1
)
请注意 getElementsByTagName 返回DOM元素 http://de.php.net/manual/en/class.domelement.php仅有的。它不考虑结束标签,也不返回其他 DOMNode。如果您还需要计算结束标签和其他节点类型,请考虑使用XML阅读器 http://de.php.net/manual/en/book.xmlreader.php反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)