получить значение NULL с помощью cURL, но получить массив с помощью file_get_contents () - PullRequest
0 голосов
/ 10 декабря 2011

У меня проблема с CURL по ссылке. Я могу получить вывод с file_get_contents();, но возникают проблемы с CURL

использовать json_decode Я получаю NULL с cURL, но с file_get_contents() я получаю массив

Использование cURL

$url="https://example.com/" 
$ch= curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$json= json_decode(curl_exec($ch),true); 
echo $json; //outputs NULL

Использование file_get_contents();

$json_pi = file_get_contents($url); 
echo json_decode($json_pi,true);

Может кто-нибудь помочь мне понять cURL? И почему я могу получить эти два противоречивых результата?

Спасибо!

1 Ответ

1 голос
/ 10 декабря 2011

Вы не проверяете ошибки после звонков, поэтому, если что-то пойдет не так, вы никогда не услышите об этом.

  • Проверьте результат вызова CURL с помощью curl_error()

  • Проверьте результат вызова json_encode (), используя json_last_error() (PHP> = 5,3)

один из них, вероятно, покажет, в чем проблема. Например, может случиться так, что вызов curl извлекает данные в наборе символов, отличном от UTF-8, что приведет к разрыву json_decode() - он ожидает данные UTF-8 всегда.

...