dpzff20644 2015-09-06 12:18
浏览 105

Bing新闻提供给PHP

This is my code:

$rss = new DOMDocument();
$rss->load('http://www.bing.com/news/search?q=obama&format=rss');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
    $item = array ( 
        'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
        'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
        'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
        'image' => $node->getElementsByTagName('News:Image')->item(0)->nodeValue,
        'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
        );
    array_push($feed, $item);
}
$limit = 1;
for($x=0;$x<$limit;$x++) {
    $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
    $link = $feed[$x]['link'];
    $description = $feed[$x]['desc'];
    $date = date('l F d, Y', strtotime($feed[$x]['date']));
    echo '<item>';
    echo '<title>'.$title.'</title>';
    echo '<link>'.$link.'</link>';
    echo '<description>'.$description.'</description>';
    echo '<News:Image>'.$image.'</News:Image>';
    echo '<pubDate>'.$date.'</pubDate>';
    echo '</item>';
    }

I can not extract the image url in the tag News:Image the rest is OK

The feed output is in this link

  • 写回答

1条回答 默认 最新

  • dtbi27903 2015-09-06 12:37
    关注

    In the output section you did not defined the variable $image and the tag you need to search for is, as stated by @u_mulder, Image. The following incorporates those changes and appears to output the desired results:-

    $rss = new DOMDocument();
    $rss->load('http://www.bing.com/news/search?q=obama&format=rss');
    $feed = array();
    foreach ( $rss->getElementsByTagName('item') as $node ) {
        $item = array ( 
            'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
            'image' => $node->getElementsByTagName('Image')->item(0)->nodeValue,
            'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
        );
        array_push($feed, $item);
    }
    
    $limit = count( $feed );
    for( $x=0; $x < $limit; $x++ ) {
    
        $title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
        $link = $feed[$x]['link'];
        $description = $feed[$x]['desc'];
        $date = date('l F d, Y', strtotime($feed[$x]['date']));
        $image = $feed[$x]['image'];
    
        echo '<item>';
        echo '<title>'.$title.'</title>';
        echo '<link>'.$link.'</link>';
        echo '<description>'.$description.'</description>';
        echo '<Image>'.$image.'</Image>';
        echo '<pubDate>'.$date.'</pubDate>';
        echo '</item>';
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接