2016-03-23 3 views
0

Ich versuche zu verstehen, wie Sie das Ergebnis einer Curl-GET-Anfrage mit PHP aufnehmen. Ich schaue auf die Ausgabe eines Teils oder des gesamten Ergebnisses an mysql.Zeichnen Sie das Ergebnis einer curl GET-Anfrage mit PHP & 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"; 
} 

Das Ergebnis $ zeigt wie folgt aus:

{ 
    "clients": { 
     "ssid2": 4, 
     "ssid1": 10 
    }, 
    "rows": [ 
     { 
      "time": "2016-03-23T02:45:00Z", 
      "ssid2": { 
       "traffic": { 
        "unclassified": { 
// etc... 

Wie kann ich jeden Teil des Ergebnisses zu einer Variable zuzuordnen, so kann ich dann auch Eingang mysql?

+0

keine der Antworten die Arbeit machen, @shagun näher diese Verbindungen hat mich akarsh, aber meine Vermutung ist, gibt es etwas über die "Tiefe" des JSON, die besser bestellt werden muss. Ich meine, die „Kunden“ ist ein Niveau, dann „Reihen“ hat seine eigene Struktur dann ‚Zeit‘ hat 24 Ergebnisse unter ‚SSID1‘ und ‚SSID2‘ – ballofjoy

+0

Fortschritt Danke Jungs: ' $ jsonIterator = new RecursiveIteratorIterator ( neue RecursiveArrayIterator (json_decode ($ Ergebnis, WAHR)), RecursiveIteratorIterator :: SELF_FIRST); Echo "
"; foreach ($ jsonIterator als $ key => $ val) { if (is_array ($ val)) { echo "$ key: \ n"; \t \t Echo "
"; } sonst { echo "$ key => $ val \ n"; \t \t Echo "
"; } } ' – ballofjoy

Antwort

0

Es sieht aus wie dieses Ergebnis im JSON-Format. Sie können json_decode sie entschlüsseln verwenden:

$resultObject = json_decode($result); 
$clients = $resultObject->clients; 
// ... get other data from result 
0

Der folgende Code wird den json in eine PHP-Array konvertieren. Sie können dann die Indizes des Arrays verwenden, um Werte herauszuziehen.

0

Wenn Ihre Antwort eine JSON-Antwort ist, können Sie einfach phps json_decode verwenden, um das analysierte Objekt zu erhalten.

$result = curl_exec($ch); 
//to get associative array passing true 
$jsonObj = json_decode($result, true); 

$clients = $jsonObj['clients']; 
$rows = $jsonObj['rows']; 

Sie auf diese Antworten für weitere Einzelheiten beziehen: Parsing JSON object in PHP using json_decode und Parsing JSON file with PHP

Verwandte Themen