1

たとえば、次のような Google ニュース フィードがあるとします。

タイトル、著者、リンクを取得するのは簡単ですが、コンテンツの最初の 200 文字を取得するにはどうすればよいでしょうか? html でいっぱいで、タイトルと著者も混ざっています。

それに strip_tags を使用できますが、それでも混乱します。

Google に ['説明'] を返させる方法はありますか?

または、管理しやすい方法でコンテンツを提供する他の良いニュース フィードはありますか?

[編集]

私がそれをやった方法を更新します。

$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

HTML を DOMDocument インスタンスにロードして必要な部分を抽出するか、Goutte のようなラッパーを使用して、必要な部分を簡単に抽出することができます。

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

https://github.com/fabpot/Goutte

于 2013-02-18T18:41:37.377 に答える