【发布时间】:2016-03-23 05:52:46
【问题描述】:
我正在尝试了解如何使用 php 记录 curl GET 请求的结果。我正在考虑将部分或全部结果输出到 mysql。
https://github.com/cloudtrax/docs/blob/master/api/code/php/simple_api_server_test_harness.php
function invoke_curl($method, $endpoint, $headers, $json) {
$api_server = 'https://api.cloudtrax.com';
try {
// get a curl handle then go to town on it
$ch = curl_init($api_server . $endpoint);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if ($result == FALSE) {
if (curl_errno($ch) == 0)
echo "@@@@ NOTE @@@@: nil HTTP return: This API call appears to be broken" . "\n";
else
throw new Exception(curl_error($ch), curl_errno($ch));
}
else
echo "RESULT: \n" . $result . "\n";
}
$result 显示如下:
{
"clients": {
"ssid2": 4,
"ssid1": 10
},
"rows": [
{
"time": "2016-03-23T02:45:00Z",
"ssid2": {
"traffic": {
"unclassified": {
// etc...
如何将结果的每个部分也关联一个变量,以便我可以输入 mysql?
【问题讨论】:
-
没有一个答案可以完成这项工作,@shagun akarsh 这些链接让我更接近,但我的猜测是 json 的“深度”有些东西需要更好地订购。我的意思是“客户”是 1 级,然后“行”有自己的结构,然后“时间”在“ssid1”和“ssid2”下有 24 个结果
-
进展感谢大家:` $jsonIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator(json_decode($result, TRUE)), RecursiveIteratorIterator::SELF_FIRST);回声“
”; foreach ($jsonIterator as $key => $val) { if(is_array($val)) { echo "$key:\n";回声“
”; } else { echo "$key => $val\n";回声“
”; } }`