我正在编写一个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->enclosure->url;
访问图片网址,但返回空数组
任何人都可以帮助我获取图片网址,谢谢
答案 0 :(得分:2)
$item->enclosure['url']
:)
属性由数组访问器访问
您也可以尝试使用xpath
$item->xpath('enclosure/@url')[0]
干杯!