Тип ответа 'json' является логическим в PHP - PullRequest
0 голосов
/ 07 мая 2018

Я использую следующее:

<?php
$url = '...';
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_CUSTOMREQUEST => "GET"
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

$response = json_decode($response, true);
echo gettype($response); /$response/ THIS RETURNS INTEGER FOR SOME REASON!
?>

Итак, $response, который я получаю, имеет тип integer, и я не могу прочитать элементы этого JSON.

Также обратите внимание, что когда я повторяю ответ, после него печатается 1.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Проверьте в руководстве возможные возвращаемые значения . Вам нужно хотя бы использовать CURLOPT_RETURNTRANSFER.

Возвращает TRUE в случае успеха или FALSE в случае ошибки. Однако если Опция CURLOPT_RETURNTRANSFER установлена, она вернет результат на успех, ЛОЖЬ при неудаче.

<?php
$url = '...';
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_CUSTOMREQUEST => "GET",
    CURLOPT_RETURNTRANSFER => true  // <<<< add this
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

$response = json_decode($response, true);

if (json_last_error() !== JSON_ERROR_NONE) {
    var_dump(json_last_error_msg());
}
0 голосов
/ 07 мая 2018

'$ результат' не определен в вашем коде, проверьте дважды? Возможно, строка «$ response = json_decode ($ response, true);» должен быть изменен. Значением по умолчанию для неопределенной переменной является NULL / False

...