Получить данные из разных URL

0

im new to php, я хочу получить много данных и выводить их из разных URL-адресов, поэтому на самом деле я создал тот, который работает и получает одну информацию. Пока я искал и смотрел так много... но я не мог понять, как получить кратность.

так что одна вещь, которую нужно учитывать: этот желтый текст, который я выделил, имеет более 100. Я имею в виду eid = 1 для eid = 102.. у каждого есть данные, хранящиеся в нем.

Изображение 174551

мой php-код - это

<?php

    $eType=2;
    $eId=43;
    $lType=1;
    $dNames=drivername;
    $shard="Apex";
    $session = curl_init();


    curl_setopt ($session, CURLOPT_URL, "http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/leaderboards?output=xml");
    curl_setopt ($session, CURLOPT_POST, true);
    curl_setopt ($session, CURLOPT_POSTFIELDS, "et=".$eType."&eid=".$eId."&lt=".$lType."&dn=".$dNames."&shard=".$shard);
    curl_setopt ($session, CURLOPT_HEADER, true);
    curl_setopt ($session, CURLOPT_RETURNTRANSFER, true);


    $response = curl_exec($session);
    curl_close($session);


    // Get the XML from the response, bypassing the header

    if (!($xml = strstr($response, '<?xml'))) {
        $xml = null;
    }

    // Output the XML

    $worldLeaderboard = simplexml_load_string($xml);

    foreach ($worldLeaderboard->worldLeaderboard as $world){
        $rank     = $world['rank'];
        $name     = $world['personaName'];
        $car      = $world['make'];
        $model    = $world['carName'];
        $duration = $world['eventDuration'];

    echo <<<EOD
    $rank $name $car $model $duration
    EOD;

    }

?>

так как вы можете видеть мой код, он отлично работает и выводит из этих данных. Я знаю, что могу сделать несколько, выполнив весь код и вставив его в 100 раз, и изменив значение переменной $ eid, но это слишком много, и данные, которые я принимаю..

Теги:

2 ответа

0

Вы можете использовать простой цикл "для".

for($eId=1;$eId<=102;$eId++) {
    $eType=2;
    $lType=1;
    $dNames=drivername;
    $shard="Apex";
    $session = curl_init();


    curl_setopt ($session, CURLOPT_URL, "http://world.needforspeed.com/SpeedAPI/ws/game/nfsw/leaderboards?output=xml");
    curl_setopt ($session, CURLOPT_POST, true);
    curl_setopt ($session, CURLOPT_POSTFIELDS, "et=".$eType."&eid=".$eId."&lt=".$lType."&dn=".$dNames."&shard=".$shard);
    curl_setopt ($session, CURLOPT_HEADER, true);
    curl_setopt ($session, CURLOPT_RETURNTRANSFER, true);


    $response = curl_exec($session);
    curl_close($session);


    // Get the XML from the response, bypassing the header

    if (!($xml = strstr($response, '<?xml'))) {
        $xml = null;
    }

    // Output the XML

    $worldLeaderboard = simplexml_load_string($xml);

    foreach ($worldLeaderboard->worldLeaderboard as $world){
        $rank     = $world['rank'];
        $name     = $world['personaName'];
        $car      = $world['make'];
        $model    = $world['carName'];
        $duration = $world['eventDuration'];

echo <<<EOD
$rank $name $car $model $duration
EOD;
    }
}
  • 0
    Я пытался, но я получаю это предупреждение: неверный аргумент для foreach () в строке 32 для очень многих строк
-2

Сделайте функцию для завитущих вызовов, поместите URL-адреса в массив и пропустите через массив и используйте каждую запись в массиве на функции curl, которую вы написали.

function my_curl_function($url)
{
    // curl call
    return $result;
}

$urls[] = 'url1';
$urls[] = 'url2';
$urls[] = 'url3';
// etc

foreach($urls AS $url)
{
    echo my_curl_function($url);
}
  • 0
    Это не дает ответа на вопрос.
  • 1
    Это так, это действительно отвечает на вопрос. Чего он не сделал, так это запрограммировал его для него.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню