返回PHP不工作的json数组
我试图在解析rss提要后返回一个json数组 这是我的代码:返回PHP不工作的json数组,php,arrays,json,Php,Arrays,Json,我试图在解析rss提要后返回一个json数组 这是我的代码: <?php header('Content-Type: application/json'); $feed = new DOMDocument(); //http://www.espnfc.com/rss //http://www.football365.com/topical-top-10/rss $feed->load('http://www.espnfc.com/rss'); $json = array();
<?php
header('Content-Type: application/json');
$feed = new DOMDocument();
//http://www.espnfc.com/rss
//http://www.football365.com/topical-top-10/rss
$feed->load('http://www.espnfc.com/rss');
$json = array();
$items = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');
$json['item'] = array();
$i = 0;
foreach($items as $item) {
$i = $i+1;
$title = $item->getElementsByTagName('title')->item(0)->firstChild->nodeValue;
$link = $item->getElementsByTagName('link')->item(0)->firstChild->nodeValue;
$img = $item->getElementsByTagName('enclosure')->item(0)->attributes->getNamedItem('url')->value;
//$img = $item;echo($url);
$json['item'][] = array("title"=>str_replace(array("\n", "\r", "\t","'"), ' ', $title),"link"=>str_replace(array("\n", "\r", "\t","'"), ' ', $link),"img"=>str_replace(array("\n", "\r", "\t","'"), ' ', $img));
}
print_r($json['item'][0]);
//echo json_encode($json['item']);
?>
浏览器中没有显示任何内容的问题。但是当我把这一行移到foreach块中时,它会显示结果(当然有冗余)。一些项目没有
标记,因此脚本在尝试访问url
属性时会出错。你需要检查一下这个
$enclosures = $item->getElementsByTagName('enclosure');
if ($enclosures->length) {
$img = $item->getElementsByTagName('enclosure')->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = '';
}
有些项目没有
标记,因此脚本在尝试访问url
属性时出错。你需要检查一下这个
$enclosures = $item->getElementsByTagName('enclosure');
if ($enclosures->length) {
$img = $item->getElementsByTagName('enclosure')->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = '';
}
有些项目没有
标记,因此脚本在尝试访问url
属性时出错。你需要检查一下这个
$enclosures = $item->getElementsByTagName('enclosure');
if ($enclosures->length) {
$img = $item->getElementsByTagName('enclosure')->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = '';
}
有些项目没有
标记,因此脚本在尝试访问url
属性时出错。你需要检查一下这个
$enclosures = $item->getElementsByTagName('enclosure');
if ($enclosures->length) {
$img = $item->getElementsByTagName('enclosure')->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = '';
}
您的代码返回请求状态“状态代码:500内部服务器错误” 您可以通过浏览浏览器web工具的“网络”选项卡轻松查看它 这是因为在第三篇文章中没有图像
<?php
// Json Header
header('Content-Type: application/json');
// Get Feed
$feed = new DOMDocument();
$feed->load('http://www.espnfc.com/rss');
// Get Items
$items = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');
// My json object
$json = array();
$json['item'] = array();
// For each item
foreach($items as $item){
// Get title
$title = $item->getElementsByTagName('title')->item(0)->firstChild->nodeValue;
// Get link
$link = $item->getElementsByTagName('link')->item(0)->firstChild->nodeValue;
// Get image if it exist
$img = $item->getElementsByTagName('enclosure');
if($img->length>0){
$img = $img->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = "";
}
array_push($json['item'], array(
"title" => preg_replace('/(\n|\r|\t|\')/', ' ', $title),
"link" => preg_replace('/(\n|\r|\t|\')/', ' ', $link),
"img" => preg_replace('/(\n|\r|\t|\')/', ' ', $img)
));
}
echo json_encode($json['item']);
?>
您的代码返回请求状态“状态代码:500内部服务器错误” 您可以通过浏览浏览器web工具的“网络”选项卡轻松查看它 这是因为在第三篇文章中没有图像
<?php
// Json Header
header('Content-Type: application/json');
// Get Feed
$feed = new DOMDocument();
$feed->load('http://www.espnfc.com/rss');
// Get Items
$items = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');
// My json object
$json = array();
$json['item'] = array();
// For each item
foreach($items as $item){
// Get title
$title = $item->getElementsByTagName('title')->item(0)->firstChild->nodeValue;
// Get link
$link = $item->getElementsByTagName('link')->item(0)->firstChild->nodeValue;
// Get image if it exist
$img = $item->getElementsByTagName('enclosure');
if($img->length>0){
$img = $img->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = "";
}
array_push($json['item'], array(
"title" => preg_replace('/(\n|\r|\t|\')/', ' ', $title),
"link" => preg_replace('/(\n|\r|\t|\')/', ' ', $link),
"img" => preg_replace('/(\n|\r|\t|\')/', ' ', $img)
));
}
echo json_encode($json['item']);
?>
您的代码返回请求状态“状态代码:500内部服务器错误” 您可以通过浏览浏览器web工具的“网络”选项卡轻松查看它 这是因为在第三篇文章中没有图像
<?php
// Json Header
header('Content-Type: application/json');
// Get Feed
$feed = new DOMDocument();
$feed->load('http://www.espnfc.com/rss');
// Get Items
$items = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');
// My json object
$json = array();
$json['item'] = array();
// For each item
foreach($items as $item){
// Get title
$title = $item->getElementsByTagName('title')->item(0)->firstChild->nodeValue;
// Get link
$link = $item->getElementsByTagName('link')->item(0)->firstChild->nodeValue;
// Get image if it exist
$img = $item->getElementsByTagName('enclosure');
if($img->length>0){
$img = $img->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = "";
}
array_push($json['item'], array(
"title" => preg_replace('/(\n|\r|\t|\')/', ' ', $title),
"link" => preg_replace('/(\n|\r|\t|\')/', ' ', $link),
"img" => preg_replace('/(\n|\r|\t|\')/', ' ', $img)
));
}
echo json_encode($json['item']);
?>
您的代码返回请求状态“状态代码:500内部服务器错误” 您可以通过浏览浏览器web工具的“网络”选项卡轻松查看它 这是因为在第三篇文章中没有图像
<?php
// Json Header
header('Content-Type: application/json');
// Get Feed
$feed = new DOMDocument();
$feed->load('http://www.espnfc.com/rss');
// Get Items
$items = $feed->getElementsByTagName('channel')->item(0)->getElementsByTagName('item');
// My json object
$json = array();
$json['item'] = array();
// For each item
foreach($items as $item){
// Get title
$title = $item->getElementsByTagName('title')->item(0)->firstChild->nodeValue;
// Get link
$link = $item->getElementsByTagName('link')->item(0)->firstChild->nodeValue;
// Get image if it exist
$img = $item->getElementsByTagName('enclosure');
if($img->length>0){
$img = $img->item(0)->attributes->getNamedItem('url')->value;
} else {
$img = "";
}
array_push($json['item'], array(
"title" => preg_replace('/(\n|\r|\t|\')/', ' ', $title),
"link" => preg_replace('/(\n|\r|\t|\')/', ' ', $link),
"img" => preg_replace('/(\n|\r|\t|\')/', ' ', $img)
));
}
echo json_encode($json['item']);
?>
print_r($json['item'][0])显示了什么?也许你应该做echo-json\u-encode($json)代码>。我们需要查看您在客户端中如何访问它。客户端是以数组的形式访问结果,还是尝试访问结果。item
?@Barmar作为一个数组,它必须以数组开始[并以数组结束]请参见我的编辑,我将整个code@koca79331什么也看不出来。我编辑了我的问题,我把所有的代码都放在了什么是show print_r($json['item'][0])?也许你应该做echo-json\u-encode($json)代码>。我们需要查看您在客户端中如何访问它。客户端是以数组的形式访问结果,还是尝试访问结果。item
?@Barmar作为一个数组,它必须以数组开始[并以数组结束]请参见我的编辑,我将整个code@koca79331什么也看不出来。我编辑了我的问题,我把所有的代码都放在了什么是show print_r($json['item'][0])?也许你应该做echo-json\u-encode($json)代码>。我们需要查看您在客户端中如何访问它。客户端是以数组的形式访问结果,还是尝试访问结果。item
?@Barmar作为一个数组,它必须以数组开始[并以数组结束]请参见我的编辑,我将整个code@koca79331什么也看不出来。我编辑了我的问题,我把所有的代码都放在了什么是show print_r($json['item'][0])?也许你应该做echo-json\u-encode($json)代码>。我们需要查看您在客户端中如何访问它。客户端是以数组的形式访问结果,还是尝试访问结果。item
?@Barmar作为一个数组,它必须以数组开始[并以数组结束]请参见我的编辑,我将整个code@koca79331什么也看不出来。我编辑了我的问题,我把所有的代码