1

所以假设我有一个谷歌新闻提要,像这样:https ://news.google.com/news/feeds?pz=1&cf=all&ned=no_no&hl=no&q=%22something%22&output=atom&num=1

获取标题、作者和链接很容易,但我要如何才能说出内容的前 200 个字符呢?它充满了html,并与标题和作者混合在一起。

我可以在上面使用 strip_tags,但它仍然是一团糟。

有什么方法可以让谷歌返回一个 ['description'] 吗?

或者是否有任何其他好消息以更易于管理的方式为我提供内容?

[编辑]

更新我最终是如何做到的。

$news = @simplexml_load_string(file_get_contents('https://news.google.com/news/feeds?pz=1&cf=all&ned=no_no&hl=no&q=%22molde+fotballklubb%22+OR+%22tornekrattet%22+OR+%22mfk%22+OR+%22oddmund+bjerkeset%22+-%22moss%22&output=atom&num=1'),  'SimpleXMLElement', LIBXML_NOCDATA);

        $data = get_object_vars($news->{'entry'});
        $test = explode('<font size="-1">', $data['content']);
        $link = get_object_vars($data['link']);

        $return['title']        = strip_tags($test[0]);
        $return['author']       = strip_tags($test[1]);
        $return['description'] = strip_tags($test[2]);
        $return['link']         = $link['@attributes']['href'];

它仍然无法正常工作,但那是因为提要一直以不同的方式为我提供内容。有时,新闻文章本身的内容只是像作者和图像描述这样的元数据。

当 html 不时更改时,通过 html 标签将其分解会导致一些问题。但我想不出用这个提要做的任何其他方式。

4

1 回答 1

0

您可以尝试在 DOMDocument 实例中加载 HTML 并提取您需要的部分,或者使用 Goutte 之类的包装器,这样可以更轻松地提取您需要的部分。

http://php.net/manual/en/class.domdocument.php

https://github.com/fabpot/Goutte

于 2013-02-18T18:41:37.377 回答