簡體   English   中英

通過curl,json的API調用會導致csv或mysql

[英]API call via curl, json results in csv or mysql

我對PHP還是很陌生,我需要通過curl調用一個api並將結果解析為可以導入數據庫的格式。 如何將結果另存為csv或將其直接推送到數據庫中?

謝謝

api調用收到這些結果

[{“ mac”:“ AC86740410B8”,“ siteId”:“ 1032”,“ name”:“ main-rtr”,“ desc”:“”,“ loc”:{“ lat”:-25.887635,“ lng” :28.150488,“ levelId”:0,“源”:“手冊”},“ lrrt”:1,“ lrne”:4}]

這是我的代碼

$ch = curl_init();
$fp = fopen("data.txt", "a+");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, 'http://theapi.com/');
curl_setopt ($ch, CURLOPT_USERPWD, "username:password");
curl_setopt ($ch, CURLOPT_FILE, $fp);
CURLOPT_HTTPHEADER >= array('Content-type: application/json');
$json = ('data.txt');
//json_decode($json, true);
//$data = json_decode(file_get_contents('data.txt'), true);
var_dump(json_decode($json));
var_dump(json_decode($json, true));
curl_exec($ch);
curl_close($ch);
fclose($fp);

您可以像這樣訪問解碼結果:

$data = json_decode('[{"mac":"AC86740410B8","siteId":"1032","name":"main-rtr","desc":"","loc":{"lat":-25.887635,"lng":28.150488,"levelId":0,"source":"manual"},"lrrt":1,"lrne":4}]');

$arrayFromResults = array(
  $data[0]->mac,
  $data[0]->loc->lat,
  $data[0]->lrne
);

var_dump( $arrayFromResults ); 

var_dump( $data ); 

http://codepad.org/kzZ7nhck

然后輕松地將數組傳遞給putcsv:

http://php.net/manual/zh/function.fputcsv.php

...或將其寫入數據庫:

http://www.php.net/manual/de/pdo.exec.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM