2

我有一个很长的 html,我使用 php 的 DOMElement 来解析它 -:
$contents是具有 html 的变量

$doc = new DOMDocument(); @$doc->loadHTML($contents);
$metas = $doc->getElementsByTagName('meta');

$metas仅当在 html 中元标记这样编写时才为真-:

<meta></meta>

但是如果它们被写在uppercaseor acombination of upper and lowercase中,它会返回 false

如何去做

4

2 回答 2

0

DOMDocument 旨在处理符合 XML 的结构,并且 XML 标记名称区分大小写。恐怕您将不得不解析 HTML 代码。由于您只是在寻找标签,因此看起来并不难。

另一个更灵活的解决方案是预处理$contents并使用一些 preg_replace 将所有标签小写。就像是

$contents = $preg_replace_callback(
'!</?\s+(\w+)]+!', 
create_function('$matches', 'return strtolower($matches[1]);'),
$contents);

注意:未经测试的代码,只需将其视为模板并检查文档。不管怎样,你说得对。

于 2013-05-05T07:46:13.437 回答
0

好吧,如果我正确理解您的问题,您可以创建变量的引用。示例是:

$meta = $doc->getElementsByTagName('meta');
$testMeta = strtolower($meta);

并比较 $testMeta。

于 2013-05-05T07:47:47.003 回答