我使用下面的preg_match来获取网页的标题标签。
// get <title>
$search = "/\<title\>(.*)\<\/title>/i";
preg_match($search, $url_contents, $result);
$title = $result[1];现在我想在title标签中进行搜索,所以我写了这个:
// search for $keyword
$keyword_slash = "/". $keyword ."/";
preg_match_all($keyword_slash, $title, $result);
print_r($result); // just for testing我添加了$keyword_slash,因为它会给我一个错误。然而,这是行不通的。即使我知道$keyword在标题中,它也总是返回一个空数组。
发布于 2012-01-26 05:36:58
您的正则表达式first preg_match似乎不正确。它应该是:
$search = "~<title>([^<]*)</title>~i";但是,我必须提醒您,像这样使用正则表达式提取标题是非常容易出错的,您应该考虑使用DOM解析器来实现。
更新:这里是对页面标题建议的DOM解析:
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($content);
$xpath = new DOMXPath($dom);
$title = $xpath->query("//head/title")->item(0)->nodeValue;
printf("title=[%s]\n", $title);https://stackoverflow.com/questions/9010563
复制相似问题