Я использую CURL для отправки запроса. Тип данных ответа – json
. Как я могу разобрать эти данные и вставить их в базу данных?
<?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); ?>
Выход JSON:
{ "Cancelled": false, "MessageID": "402f481b-c420-481f-b129-7b2d8ce7cf0a", "Queued": false, "SMSError": 2, "SMSIncomingMessages": null, "Sent": false, "SentDateTime": "/Date(-62135578800000-0500)/" }
Если ваша переменная $result
представляет собой строку json like, вы должны использовать функцию json_decode
для анализа ее как объекта или массива :
$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);
Array ( [Cancelled] => [MessageID] => 402f481b-c420-481f-b129-7b2d8ce7cf0a [Queued] => [SMSError] => 2 [SMSIncomingMessages] => [Sent] => [SentDateTime] => /Date(-62135578800000-0500)/ )
Теперь вы можете работать с переменной $json
как массив:
echo $json['MessageID']; echo $json['SMSError']; // other stuff
Рекомендации:
Пытаться:
$result = curl_exec($cURL); $result = json_decode($result,true);
Теперь вы можете получить доступ к MessageID
из $result['MessageID']
.
Что касается базы данных, она просто использует такой запрос:
INSERT INTO `tableName`(`Cancelled`,`Queued`,`SMSError`,`SMSIncommingMessage`,`Sent`,`SentDateTime`) VALUES('?','?','?','?','?');
Подготовлено.