2016-07-20 1 views
3

Я прочитал данные из API с помощью следующего кода:CURL ошибок и PHP чтение наступающий JSON с API

$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL, $screenshot_id); 
curl_setopt($ch, CURLOPT_HEADER, 0); // No HTTP headers 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the data  
$resultset = curl_exec($ch); 
curl_close($ch); 

Я получаю этот JSON от API:

{ 
    "url":"URL page", 
    "images":[ 
     { 
      "url":"URL image", 
      "width":1360, 
      "height":768, 
      "_id":"578fc3d14a3c4103002f99b2" 
     }, 
     { 
      "url":"URL image", 
      "width":320, 
      "height":480, 
      "_id":"578fc3d44a3c4103002f99b3" 
     } 
    ], 
    "date":"2016-07-20T18:32:42.046Z", 
    "id":"MM7Kl31Rl" 
} 

Первым шагом превратить его в объект и цикл для извлечения желаемых данных, с помощью этого кода:

$screenshot_url_json = json_decode($resultset, true); 
if(count($screenshot_url_json['images']) > 0){ 
    foreach($screenshot_url_json['images'] as $thumb){ 
     if($thumb['width'] == 1360 && $thumb['height'] == 768){ 
      $screenshot_url = $thumb['url']; 
     } 
    } 

Проблема в том, что большинство раз поле «url» пустое и другое время восстановления успешно. В чем проблема? Некоторый параметр отсутствует при выполнении завитки?

Но если я запустил «$ screenshot_id» в браузере и нажимаю ENTER, он восстанавливает мне строку успешно. API, который я использую, таков: Get screenshots from website.

ответ