【发布时间】:2014-12-17 03:17:46
【问题描述】:
我正在尝试使用 SimpleXML 从 MRSS 提要中解析出一些数据,然后使用该数据创建 JSON。
这是我正在尝试的,它确实输出 JSON,但格式看起来很糟糕,并且在每个元素之前给出所有 [{"0":",我确定我做错了什么:
<?php
session_start();
$html = "";
$url = "http://feeds.nascar.com/feeds/video?command=search_videos&media_delivery=http&custom_fields=adtitle%2cfranchise&page_size=100&sort_by=PUBLISH_DATE:DESC&token=217e0d96-bd4a-4451-88ec-404debfaf425&any=franchise:%20Preview%20Show&any=franchise:%20Weekend%20Top%205&any=franchise:Up%20to%20Speed&any=franchise:Press%20Pass&any=franchise:Sprint%20Cup%20Practice%20Clips&any=franchise:Sprint%20Cup%20Highlights&any=franchise:Sprint%20Cup%20Final%20Laps&any=franchise:Sprint%20Cup%20Victory%20Lane&any=franchise:Sprint%20Cup%20Post%20Race%20Reactions&any=franchise:All%20Access&any=franchise:Nationwide%20Series%20Qualifying%20Clips&any=franchise:Nationwide%20Series%20Highlights&any=franchise:Nationwide%20Series%20Final%20Laps&any=franchise:Nationwide%20Series%20Victory%20Lane&any=franchise:Nationwide%20Series%20Post%20Race%20Reactions&any=franchise:Truck%20Series%20Qualifying%20Clips&any=franchise:Truck%20Series%20Highlights&any=franchise:Truck%20Series%20Final%20Laps&any=franchise:Truck%20Series%20Victory%20Lane&any=franchise:Truck%20Series%20Post%20Race%20Reactions&output=mrss";
$xml = simplexml_load_file($url);
$namespaces = $xml->getNamespaces(true); // get namespaces
for($i = 0; $i < 50; $i++){ // will return the 50 most recent videos
$title = $xml->channel->item[$i]->video;
$link = $xml->channel->item[$i]->link;
$title = $xml->channel->item[$i]->title;
$pubDate = $xml->channel->item[$i]->pubDate;
$description = $xml->channel->item[$i]->description;
$titleid = $xml->channel->item[$i]->children($namespaces['bc'])->titleid;
$m_attrs = $xml->channel->item[$i]->children($namespaces['media'])->content[0]->attributes();
$VideoFileURL = $m_attrs["url"];
$arr = array($title, $description, $VideoFileURL);
$json_string = json_encode($arr, 128);
echo json_encode($arr, 128);
}
?>
我都试过了
$json_string = json_encode($arr, 128)
和
$json_string = json_encode($arr, JSON_PRETTY_PRINT)
“128”的打印效果似乎比“JSON_PRETTY_PRINT”好
有什么想法吗?我确信这很明显,但我是 PHP 的新手。谢谢!
【问题讨论】:
-
JSON_PRETTY_PRINT等于128。也许你可以具体化你的风格观察。 json_encode() 循环中的每个元素可能不是你想要的。 -
@mario 感谢您的反馈,不太清楚您所说的“具体化您的风格观察”是什么意思——您能详细说明一下吗?谢谢!