1

我正在尝试在 PHP 中解析 Twitter 原子提要,但遇到了这个奇怪的问题。我preg_match_all用这个正则表达式字符串调用:

"|<entry>.*<title>(.*)</title>.*<published>(.*)</published>.*</entry>|xsU"

它与所有条目匹配,但捕获的子组标题/已发布未显示在结果中(未在结果对象中创建捕获的子组的数组)。

现在到奇怪的部分,我也尝试捕捉最后一点:

"|<entry>.*<title>(.*)</title>.*<published>(.*)</published>(.*)</entry>|xsU"

现在捕获工作。我得到了标题和发布日期以及我不想要的大量最终数据。

我尝试将非捕获字符串“?:”添加到最后一个子组,但随后捕获再次停止工作。

那么如何捕获我想要的数据,而不必在最后捕获大量不需要的数据呢?

4

1 回答 1

1

我建议您使用DOM(或SimpleXML)来解析 RSS/Atom 提要。您将获得比使用正则表达式更好的结果。

这是一个示例(使用 SimpleXML):

$rss_feed = file_get_contents('http://stackoverflow.com/feeds/question/4187945');
$sxml = new SimpleXMLElement($rss_feed);

$title = $sxml->entry[0]->title;
echo $title;
于 2010-11-15T19:22:23.277 回答