【问题标题】:PHP Simple XML access a image url element valuePHP Simple XML 访问图像 url 元素值
【发布时间】:2019-02-06 09:59:53
【问题描述】:

我正在编写一个 PHP 脚本来获取 rss 新提要并显示,使用 php simplexml_load_file 我设法显示提要的大部分内容,

但无法访问图片链接。

我的代码在这里

      $url = "https://www.nu.nl/rss/Algemeen";       
             $feeds = simplexml_load_file($url);
             foreach ($feeds->channel->item as $item) {

                        $title = $item->title;
                        $link = $item->link;
                        $description = $item->description;
                        $postDate = $item->pubDate;
//to get the image

$imageurl = $item->enclosure->url;

    //example output

    echo "<h3 class='rstitle'>$title</h3><div class='rscont'>$description<div>";

        }

但是图片属性在另一个层次里面

xml var_dump 的示例部分

object(SimpleXMLElement)#1 (2) {
  ["@attributes"]=>
  array(1) {
    ["version"]=>
    string(3) "2.0"
  }
  ["channel"]=>
  object(SimpleXMLElement)#2 (8) {
    ["title"]=>
    string(13) "NU - Algemeen"
    ["link"]=>
    string(26) "https://www.nu.nl/algemeen"
    ["description"]=>
    string(37) "Het laatste nieuws het eerst op NU.nl"
    ["language"]=>
    string(5) "nl-nl"
    ["copyright"]=>
    string(22) "Copyright (c) 2019, NU"
    ["lastBuildDate"]=>
    string(31) "Wed, 06 Feb 2019 10:41:00 +0100"
    ["ttl"]=>
    string(2) "60"
    ["item"]=>
    array(10) {
      [0]=>
      object(SimpleXMLElement)#3 (7) {
        ["title"]=>
        string(74) "747.000 Nederlanders in laatste vijf jaar slachtoffer van huiselijk geweld"
        ["link"]=>
        string(115) "https://www.nu.nl/binnenland/5726055/747000-nederlanders-in-laatste-vijf-jaar-slachtoffer-van-huiselijk-geweld.html"
        ["description"]=>
        string(216) "In totaal 747.000 volwassen Nederlanders zijn in de afgelopen vijf jaar minstens één keer slachtoffer geweest van huiselijk geweld. Daarnaast krijgen jaarlijks 90.000 tot 127.000 kinderen te maken met mishandeling."
        ["pubDate"]=>
        string(31) "Wed, 06 Feb 2019 10:21:36 +0100"
        ["guid"]=>
        string(28) "https://www.nu.nl/-/5726055/"
        ["enclosure"]=>
        object(SimpleXMLElement)#13 (1) {
          ["@attributes"]=>
          array(3) {
            ["url"]=>
            string(123) "https://media.nu.nl/m/m1nx2k0a3l3q_sqr256.jpg/747000-nederlanders-in-laatste-vijf-jaar-slachtoffer-van-huiselijk-geweld.jpg"
            ["length"]=>
            string(1) "0"
            ["type"]=>
            string(10) "image/jpeg"
          }
        }
        ["category"]=>
        array(2) {
          [0]=>
          string(8) "Algemeen"
          [1]=>
          string(10) "Binnenland"
        }
      }
      [1]=>
      object(SimpleXMLElement)#4 (7) {
        ["title"]=>
        string(68) "FvD en DENK willen in alle provincies meedoen aan Statenverkiezingen"
        ["link"]=>
        string(108) "https://www.nu.nl/algemeen/5726574/fvd-en-denk-willen-in-alle-provincies-meedoen-aan-statenverkiezingen.html"
        ["description"]=>
        string(206) "Forum voor Democratie (FvD) en DENK willen in alle twaalf provincies meedoen aan de Provinciale Statenverkiezingen op 20 maart. De Kiesraad heeft woensdag bekendgemaakt welke partijen zich hebben aangemeld."
        ["pubDate"]=>
        string(31) "Wed, 06 Feb 2019 10:41:00 +0100"
        ["guid"]=>
        string(28) "https://www.nu.nl/-/5726574/"
        ["enclosure"]=>
        object(SimpleXMLElement)#13 (1) {
          ["@attributes"]=>
          array(3) {
            ["url"]=>
            string(118) "https://media.nu.nl/m/k82xoojacd24_sqr256.jpg/fvd-en-denk-willen-in-alle-provincies-meedoen-aan-statenverkiezingen.jpg"
            ["length"]=>
            string(1) "0"
            ["type"]=>
            string(10) "image/jpeg"
          }
        }
        ["category"]=>
        array(2) {
          [0]=>
          string(8) "Algemeen"
          [1]=>
          string(8) "Politiek"
        }
      }
      [2]=>

我尝试通过$item-&gt;enclosure-&gt;url; 访问图片网址,但它返回空数组

谁能帮我获取图片地址,非常感谢

【问题讨论】:

    标签: php xml rss simplexml


    【解决方案1】:
    $item->enclosure['url']
    

    :)

    属性由数组访问器访问

    你也可以试试xpath

    $item->xpath('enclosure/@url')[0]
    

    干杯!

    【讨论】:

    • 非常感谢,您节省了我的时间 :)
    猜你喜欢
    • 2016-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2018-06-27
    • 2013-01-10
    • 2015-02-23
    • 2011-10-31
    相关资源
    最近更新 更多