PHP获取XML Feed的页面标题

时间:2013-09-09 10:46:52

标签: php xml xml-parsing

我正在尝试从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);

由于

2 个答案:

答案 0 :(得分:1)

不要使用正则表达式来解析XML或HTML页面。试试这个。更简单,更整洁:

$feed = simplexml_load_file('feed.xml');

var_dump((string)$feed->channel->title);

答案 1 :(得分:0)

我个人建议不要使用正则表达式来解析XML文档。它根本不适合这种情况。

而是查看SimpleXMLDOM

现在,你的正则表达式出了什么问题,默认情况下这颗星是贪婪的

preg_match("/\<title\>(.*?)<\/title\>/",$str,$title);

会让你得到你想要的东西。但请记住,您的代码只会返回文档中的第一个title元素。

有关这个优秀参考网站的正则表达式的更多信息

http://www.regular-expressions.info/