PHP | Вызовите API несколько раз как другую ссылку и получите данные

#php #api

#php #API

Вопрос:

Начинающий PHP здесь.

Я хочу вызывать API несколько раз в цикле и сохранять данные из этих циклов. Ссылка на источник API должна меняться в соответствии с существующими массивами каждый раз, когда она будет вызываться.

Пример

 $myArrays = array(
     'SYMBOL1' => array ( 'balance' => 14.90, 'boughtprice' => 630 ),
     'SYMBOL2' => array ( 'balance' => 12.90, 'boughtprice' => 3730 ),
     'SYMBOL3' => array ( 'balance' => 11.90, 'boughtprice' => 42 )
     );    



$ApiData = json_decode(file_get_contents('https://Exampledata/Data='.$symbol.'example-settings=30'), true); 

  

У меня в моих массивах 3 символа, поэтому я хочу пройти через API 3 раза, но в первый раз его нужно вызвать с $symbol помощью as SYMBOL1 и сохранить данные из результата. Затем вызовите его снова с $symbol помощью as SYMBOL2 и снова сохраните данные из него и так далее. В конце мне нужно, чтобы сохраненные данные были доступны как переменные для выполнения дальнейших вычислений.

Как это достижимо самым простым способом?

Комментарии:

1. не используйте file_get_content() для доступа к сети. используйте cURL.

2. @MarcinOrlowski спасибо за ваш комментарий, я прочитаю это.

Ответ №1:

Вы должны использовать foreach и хранить данные в массиве

 $myArrays = array(
     'SYMBOL1' => array ( 'balance' => 14.90, 'boughtprice' => 630 ),
     'SYMBOL2' => array ( 'balance' => 12.90, 'boughtprice' => 3730 ),
     'SYMBOL3' => array ( 'balance' => 11.90, 'boughtprice' => 42 )
     );    

$ApiData = array();
foreach($myArrays as $symbol => $value){
    $ApiData[] = json_decode(file_get_contents('https://Exampledata/Data='.$symbol.'example-settings=30'), true); 
}

var_dump($ApiData); //Your results are stored in $ApiData
  

Комментарии:

1. Привет и спасибо за ваш ответ, в этом примере кода $symbol является переменной для «массива», а не для SYMBOL1, 2 или 3. Итак, я получаю сообщение об ошибке при вызове API, потому что ссылка разорвана. Есть идеи?

2. @cmdReligion Я обновил свой ответ, попробуйте сейчас и дайте мне знать