首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >preg_match中的preg_match

preg_match中的preg_match
EN

Stack Overflow用户
提问于 2012-01-26 05:27:44
回答 1查看 714关注 0票数 1

我使用下面的preg_match来获取网页的标题标签。

代码语言:javascript
运行
复制
// get <title>
$search = "/\<title\>(.*)\<\/title>/i";
preg_match($search, $url_contents, $result);
$title = $result[1];

现在我想在title标签中进行搜索,所以我写了这个:

代码语言:javascript
运行
复制
// search for $keyword
$keyword_slash = "/". $keyword ."/";
preg_match_all($keyword_slash, $title, $result);
print_r($result); // just for testing

我添加了$keyword_slash,因为它会给我一个错误。然而,这是行不通的。即使我知道$keyword在标题中,它也总是返回一个空数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-26 05:36:58

您的正则表达式first preg_match似乎不正确。它应该是:

代码语言:javascript
运行
复制
$search = "~<title>([^<]*)</title>~i";

但是,我必须提醒您,像这样使用正则表达式提取标题是非常容易出错的,您应该考虑使用DOM解析器来实现。

更新:这里是对页面标题建议的DOM解析:

代码语言:javascript
运行
复制
$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);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9010563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档