我正在使用可用的 API 来发送请求并接收 json 和 xml 格式的结果。我可以这样做,但如何正确显示返回的数据?
我使用 json_decode 并将 xml 数据分配给一个数组和 print_r 那些。它出现在大量的垃圾数据中。
如何在表格中显示它?或者我必须在显示之前先将数据保存到单个文件或数据库中吗?
我是 PHP 新手,因此不确定如何实现。
我正在使用可用的 API 来发送请求并接收 json 和 xml 格式的结果。我可以这样做,但如何正确显示返回的数据?
我使用 json_decode 并将 xml 数据分配给一个数组和 print_r 那些。它出现在大量的垃圾数据中。
如何在表格中显示它?或者我必须在显示之前先将数据保存到单个文件或数据库中吗?
我是 PHP 新手,因此不确定如何实现。
JSON 是一个多维数组,在我看来,查看它的最简单方法就是
var_dump($json_array);
不过,这可能是您所指的数据块。
这不是一种非常适合表格的格式,因为表格本质上是二维的,而 JSON 可以是多维的。
您可以展平阵列,然后将其显示为表格。
function flatten_json($json, &$flat, $key) {
// First check the base case: if the arg is not an array,
// then it's data to be inserted in the flat array.
if (!is_array($json)) {
$flat[$key] = $json;
} else {
// It's an array, to reduce the depth of the json,
// we remove this array, by iterating through it,
// sending the elements to be checked if they're also arrays,
// or if they're data to be inserted into the flat array.
foreach ($json as $name => $element) {
flatten_json($element, $flat, $key.'_'.$name);
}
}
}
要使用这个函数,你首先声明你的平面数组:
$flat = array();
然后将它传递给函数,使用你的 json 和一个你想成为外键的键,如果你确定你的 json 是一个数组,这几乎可以保证,你可以将键留空。
flatten_json($json_array, $flat, '');
现在 $flat 将具有扁平化的 json,您可以将其打印为表格,如果您有许多 json 结果要打印,可能会打印到 csv 中。
如果你的 json 是:
array(
'person' => array(
'name' => 'timmy',
'age' => '5'
),
'car' => array(
'make' => 'ford',
'engine' => array(
'hp' => 260,
'cyls' => 8
)
)
)
然后 $flat 将如下所示:
array(
'person_name' => 'timmy',
'person_age' => 5,
'car_make' => 'ford',
'car_engine_hp' => 260,
'car_engine_cyls' => 8
)
如果你想打印在一个漂亮的 html 表中:
echo "<table><tr>";
foreach ($flat as $header => $value) {
echo "<th>$header</th>;
}
echo "</tr><tr>";
foreach ($flat as $header => $value) {
echo "<td>$value</td>";
}
echo "</tr></table>";
我有点困惑。但如果你指的是一个 xml 文件,它会像这样出现:
<books>
<book published="2011-07-24 19:40:26">
<title>I left my heart on Europa</title>
<author>Ship of Nomads</author>
< /book>
<book published="2011-07-24 19:40:26">
<title>I left my liveron Europa</title>
<author>Ship of Nomads</author>
< /book>
</books>
您可以在这里使用simplexml_load_file做一些 php 技巧。来自上述 xml 的示例,您可以使用以下代码:
$mybooks= simplexml_load_file('books.xml');
echo "<ul id="booklist">";
foreach ($mybooks as $bookinfo):
$title=$bookinfo->title;
$author=$bookinfo->author;
$date=$bookinfo['published'];
echo "<li><div class="title">".$title."</div><div class="author">by ".$author."</div><b>".$date."</b></li>";
endforeach; echo "</ul>";
希望这可以帮助。