我创建了一个简单的PHP脚本,使用getElementByTagName和getAttribute解析HTML文档并返回meta标签。它完美地工作,除了一个问题,如果HTML标签不是小写,则不返回标签内容。例如:
<title>My Title</title>
将返回"My Title",但
<Title>My Title</Title>
或者
<TITLE>My Title</TITLE>
不会返回任何内容。有没有简单的方法让它无论大小写都匹配标签?我猜这可能涉及正则表达式。
以下是示例代码:
$nodes = $doc->getElementsByTagName('title');
$heading = $doc->getElementsByTagName('h1');
$title = $nodes->item(0)->nodeValue;
$h1 = $heading->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('name') == 'description')
$description = $meta->getAttribute('content');
if($meta->getAttribute('name') == 'keywords')
$keywords = $meta->getAttribute('content');
if($meta->getAttribute('name') == 'robots')
$robots = $meta->getAttribute('content');
}
$doc
的值从哪里来?如果构建 DOM 的任何内容没有(不区分大小写的)HTML 选项,我会感到惊讶。 - Quentin