php - только последний результат из запроса API - PullRequest
0 голосов
/ 12 октября 2018

Я получаю некоторые данные из API, но я просто хочу получить самые последние данные.

Когда я печатаю_ данные, они выглядят так:

Array
(
    [curlResult] => Rank,Club,Country,Level,Elo,From,To
None,Ajax,NED,1,1069.13220215,1956-07-01,1956-09-02
None,Ajax,NED,1,1074.29101562,1956-09-03,1956-09-09
None,Ajax,NED,1,1084.49816895,1956-09-10,1956-09-23
None,Ajax,NED,1,1091.4354248,1956-09-24,1956-09-30 //this one
)

Это продолжается для тысяч результатов, но мне нужна только последняя строка (самая последняя).Поэтому, если бы результат был выше, я хочу получить все данные из строки, которая имеет «// this» за ним.

Это код, который я использую для получения данных:

<?php
function makeRequest($url, $callDetails = false)
{
  // Set handle
  $ch = curl_init($url);

  // Set options
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  // Execute curl handle add results to data return array.
  $result = curl_exec($ch);
  $returnGroup = ['curlResult' => $result,];

  // If details of curl execution are asked for add them to return group.
  if ($callDetails) {
    $returnGroup['info'] = curl_getinfo($ch);
    $returnGroup['errno'] = curl_errno($ch);
    $returnGroup['error'] = curl_error($ch);
  }

  // Close cURL and return response.
  curl_close($ch);
  return $returnGroup;
}

$url = "http://api.website.com/Ajax";/* some url */
$response = makeRequest($url);

// $csv = array_map('str_getcsv', $response);
echo '<pre>';
print_r($response);

?>

1 Ответ

0 голосов
/ 12 октября 2018

Разместив ваш API в сети, я смог создать для вас ответ:

$resp = makeRequest('http://api.clubelo.com/Wolves')['curlResult'];
$result = array_filter(explode("\n", $resp), function ($record) {
    return !empty($record);
});

$headings = explode(',', reset($result));
$record = explode(',', end($result));

$last = array_combine($headings, $record);

$resp состоит из вызова функции, а затем я сразу получаю доступ к результату операции cURL.

$result использует функцию explode, чтобы разделить каждую строку ответа API на свою собственную «запись».

$headings и $record просто разделитьответ API в соответствующие поля.
reset - это функция PHP, которая сбрасывает внутренний указатель на начало массива и возвращает этот элемент.
end противоположно reset и устанавливает внутренний указатель на конец массива и возвращает этот элемент.

$last будет последней записью API с $headingsустановите в качестве ключей массива значение, соответствующее значению из ответа.

Это вне вашего контроля, но этот API может обслуживаться намного лучше!Большая часть этого кода делает ответ представленный разумно .

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