Несколько данных cURL были перезаписаны на PHP для каждого - PullRequest
0 голосов
/ 04 мая 2018

Мне нужно вызывать cURL несколько раз, чтобы получить разные ответы JSON, поэтому я следовал коду в ответе на этот вопрос: Многократная печать json и json .

Теперь я понимаю, что переменная, в которой хранятся возвращаемые данные, содержит только информацию из последнего URL в массиве (она была перезаписана). Вот мой код:

$urls = Array(
 'https://example.com/projects/277199/roles.json',
 'https://example.com/projects/292291/roles.json'
 );


foreach ($urls as $key=>$url) {
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
 curl_setopt($ch, CURLOPT_USERPWD, "XXX:YYY");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $ch_response = curl_exec($ch);
 curl_close($ch);
 $rolesData = json_decode($ch_response,true);
}

print_r($rolesData); //It's only printing the data from the last element in the urls array

Как правильно хранить данные?

1 Ответ

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

просто добавьте [] или [$key] к $rolesData

    foreach ($urls as $key=>$url) {
     $ch = curl_init();
     curl_setopt($ch, CURLOPT_URL, $url);
     curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
     curl_setopt($ch, CURLOPT_USERPWD, "XXX:YYY");
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
     $ch_response = curl_exec($ch);
     curl_close($ch);
     $rolesData[] = json_decode($ch_response,true);
    }

print_r($rolesData);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...