2015-11-28 2 views
1

Я хочу получить множественные URL-адреса через curl и распечатать выход son. Я видел это: multiple cURL and output JSON? но I`am не в состоянии заставить его работать так или иначе ...Несколько curl json и json print

мой код:

<?php 
$urls = Array(
'URLtoJSON1', 
'URLtoJSON1' 
); 

for($i = 0; $i < 3; $i++) { 
    $curl[$i] = curl_init($urls); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($curl, CURLOPT_USERPWD, "YYY:XXX"); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data); 
    $curl_response[$i] = curl_exec($curl); 
    curl_close($curl); 

    $data = json_decode($curl_response[$i]); 
    $name[$i] = $data->fullDisplayName; 
    $datum[$i] = $data->timestamp; 
    $result[$i] = $data->result; 

} 

// here I`d love to be able echo output $name[URLtoJSON], etc... 
?> 

спасибо за любую помощь.

ответ

1

Вместо того чтобы делать for петлю, вы можете сделать foreach цикл, который перебирает над $urls массива, делая foreach ($urls as $key=>$url). $key будет содержать индекс массива (начиная с 0), а $url будет содержать URL-адрес.

Вот что полученный код будет выглядеть следующим образом:

$urls = Array(
    'URLtoJSON1', 
    'URLtoJSON2' 
); 

foreach ($urls as $key=>$url) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($ch, CURLOPT_USERPWD, "YYY:XXX"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $ch_post_data); 
    $ch_response = curl_exec($ch); 
    curl_close($ch); 

    $data = json_decode($ch_response); 
    $name[$key] = $data->fullDisplayName; 
    $datum[$key] = $data->timestamp; 
    $result[$key] = $data->result; 
} 

Теперь, если вы хотите получить доступ к $name первого URL, вы бы просто сделать $echo $name[0];

Вы также можете получить доступ к $datum или $result в аналогичным образом.

+0

спасибо. Работаю как шарм :) – dzvert