web-dev-qa-db-fra.com

Comment analyser la réponse Json de CURL

J'utilise CURL pour envoyer une demande. Le type de données de réponse est json. Comment puis-je analyser ces données et les insérer dans la base de données?

<?php

$url = 'http://sms2.cdyne.com/sms.svc/SimpleSMSsendWithPostback?        PhoneNumber=18887477474&Message=test&LicenseKey=LICENSEKEY';

$cURL = curl_init();

curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_HTTPGET, true);

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json'
));

$result = curl_exec($cURL);

curl_close($cURL);



print_r($result);

?>

Sortie JSON:

{
    "Cancelled": false,
    "MessageID": "402f481b-c420-481f-b129-7b2d8ce7cf0a",
    "Queued": false,
    "SMSError": 2,
    "SMSIncomingMessages": null,
    "Sent": false,
    "SentDateTime": "/Date(-62135578800000-0500)/"
}
43
wahid

Si votre $result variable est une chaîne json comme, vous devez utiliser json_decode fonction pour l’analyser comme un objet ou array:

$result = '{"Cancelled":false,"MessageID":"402f481b-c420-481f-b129-7b2d8ce7cf0a","Queued":false,"SMSError":2,"SMSIncomingMessages":null,"Sent":false,"SentDateTime":"\/Date(-62135578800000-0500)\/"}';
$json = json_decode($result, true);
print_r($json);

SORTIE

Array
(
    [Cancelled] => 
    [MessageID] => 402f481b-c420-481f-b129-7b2d8ce7cf0a
    [Queued] => 
    [SMSError] => 2
    [SMSIncomingMessages] => 
    [Sent] => 
    [SentDateTime] => /Date(-62135578800000-0500)/
)

Vous pouvez maintenant travailler avec $json variable sous forme de tableau:

echo $json['MessageID'];
echo $json['SMSError'];
// other stuff

Références:

77
user1823761

Essayer:

$result = curl_exec($cURL);
$result = json_decode($result,true);

Vous pouvez maintenant accéder à MessageID à partir de $result['MessageID'].

Quant à la base de données, elle utilise simplement une requête comme celle-ci:

INSERT INTO `tableName`(`Cancelled`,`Queued`,`SMSError`,`SMSIncommingMessage`,`Sent`,`SentDateTime`) VALUES('?','?','?','?','?');

Préparé.

6
David Chen