-2

我正在尝试从 XML Feeds 获取页面标题。

http://feeds.gawker.com/lifehacker/full以示例为例,使用下面的代码可与其他站点一起使用,但Lifehacker它似乎忽略了结束</title>标记,并且 console.log 显示了xml打开后提要的全部内容<title>

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);

谢谢

4

2 回答 2

1

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

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

var_dump((string)$feed->channel->title);
于 2013-09-09T10:53:18.743 回答
0

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

而是看看SimpleXMLDOM

现在,你的正则表达式有什么问题是星默认是贪婪的

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

会得到你所追求的。但请记住,您的代码只会返回title文档中的第一个元素。

在这个优秀的参考网站上了解更多关于正则表达式的信息

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

于 2013-09-09T10:56:02.953 回答