我正在尝试从XML Feed中获取页面标题。
我正在使用http://feeds.gawker.com/lifehacker/full
作为示例,使用以下代码可以与其他网站一起使用,但对于Lifehacker
,它似乎忽略了结束</title>
标记,而console.log显示了整个开场xml
<title>
Feed的内容
function getTitle($Url){
$str = file_get_contents($Url);
if(strlen($str)>0){
preg_match("/\<title\>(.*)<\/title\>/",$str,$title);
return $title[1];
}
}
$feed = 'http://feeds.gawker.com/lifehacker/full';
$pagetitle = getTitle($feed);
由于
答案 0 :(得分:1)
不要使用正则表达式来解析XML或HTML页面。试试这个。更简单,更整洁:
$feed = simplexml_load_file('feed.xml');
var_dump((string)$feed->channel->title);
答案 1 :(得分:0)
我个人建议不要使用正则表达式来解析XML文档。它根本不适合这种情况。
现在,你的正则表达式出了什么问题,默认情况下这颗星是贪婪的
preg_match("/\<title\>(.*?)<\/title\>/",$str,$title);
会让你得到你想要的东西。但请记住,您的代码只会返回文档中的第一个title
元素。
有关这个优秀参考网站的正则表达式的更多信息