我正在为Amazon Echo开发一个项目,并且代码的输出需要采用非常特定的格式。现在代码采用RSS提要并以JSON的形式输出。我遇到的问题是我需要在每个foreach数组项目末尾显示一个逗号,但最后我不能使用逗号。
最终逗号不显示的最佳方式是什么?
[
{"titleText" : "TestTi","uid" :
"https://feedity.com/hop.aspx?MzMwMzQy4%2BXKKCkpsNLXLy8v1ytOLkpNzC1OTixI1UvOz9XPKMnN0S%2FOrIhPy0lML45PB8qWxCemlKXmlZQWpeoBpQE%3D","updateDate":
"2016-04-10T00:00:00.0Z","mainText" :
"Six Flags Great Adventure - Justice League Construction Update"},{"titleText" : "TestTi","uid" : "https://feedity.com/hop.aspx?MzMwMzQy4%2BXKKCkpsNLXLy8v1ytOLkpNzC1OTixI1UvOz9XPKMnN0S9PzCmJT8kszkutjC%2FPL8pJiS9KLc4vKtEDygIA",
"updateDate": "2016-04-10T00:00:00.0Z","mainText" :
"Walt Disney World - Ever Heard of Disney Mountain?!"},]
我需要删除显示的最后一个逗号。
这是我的代码:
<?php
header('Content-Type: application/json; Charset=UTF-8');
?>
[
<?php
$rss = new DOMDocument();
$rss->load('http://feedity.com/screamscape-com/VVNVUlFV.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,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 2;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
echo '{"titleText" : "TestTi",';
echo '"uid" : "'.$link.'",';
echo '"updateDate": "2016-04-10T00:00:00.0Z",';
echo '"mainText" : "'.$title.'"},';
}
?>
]
答案 0 :(得分:4)
最好的方法是构建数组并使用json_encode()
输出它。这样您就不必尝试手动创建json。
$feed = array();
$results = array();
foreach($feed as $item){
$results[] => array(
'titleText' => 'TestTi',
'uid' => $item['link'],
'title' => $item['title']
);
}
$json = json_encode($results);
答案 1 :(得分:0)
$arr = array();
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$arr[] = '{"titleText" : "TestTi", "uid" : "'.$link.'", "updateDate": "2016-04-10T00:00:00.0Z", "mainText" : "'.$title.'"}';
}
print implode(',', $arr);