получить данные с помощью CURL и JSON - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь получить данные с помощью Curl. Я пытался получить лучший результат, но я получил, но моя цель - получить конкретную c строку, НЕ все строки.

см. Мой код и, пожалуйста, помогите получить результат с "маршрутизацией" И "tot_dist" Другие переменные NO

вот мой код

   <?php
function httpPost($url,$params)
{
  $postData = '';
   //create name value pairs seperated by &
   foreach($params as $l => $v) 
   { 
      $postData .= $l . '='.$v.'&'; 
   }
   $postData = rtrim($postData, '&');

    $ch = curl_init();  

    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_POST, count($postData));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);    

    $output=curl_exec($ch);

    curl_close($ch);
    return $output;

}
$params = array(
   "id1" => "OOMS",
   "id2" => "OOSA",
   "routing" => "",
   "dbid" => "2006",
   "k" => "",

);

echo httpPost("http://rfinder.asalink.net/free/autoroute_rtx.php",$params);


// I WANT TO GET THE RESULT WITH ROUTING AND tot_dist ONLY LIKE THIS 
//OOMS DCT KASIN DCT OOSA
//459.5
?>

Этот результат я получил

{"rc":"100","rmsg":"OK","gc_dist":459.2,"routing":"OOMS DCT KASIN DCT OOSA","tot_dist":459.5,"legs":[{"wt":"A","id":"OOMS","lat":"23.6002","lon":"58.2836","freq":"","via":"","brg":"0.0","dist":"0.0","name":"MUSCAT INTERNATIONAL"},{"wt":"W","id":"KASIN","lat":"20.3147","lon":"55.9617","freq":"","via":"DCT","brg":"214.7","dist":"235.8","name":"KASIN"},{"wt":"A","id":"OOSA","lat":"17.0387","lon":"54.0913","freq":"","via":"DCT","brg":"209.6","dist":"223.6","name":"SALALAH"}]}

, но мне нужно только " Маршрутизация »и« tot_dist »

1 Ответ

0 голосов
/ 17 июня 2020

Как только вы сделаете запрос, вы получите все данные. Затем вы можете выбрать то, что вам нужно. Вот как должен выглядеть ваш код, чтобы выбрать только routing и tot_dist

function httpPost($url,$params)
{
   $postData = '';
   //create name value pairs seperated by &
   foreach($params as $l => $v) 
   { 
      $postData .= $l . '='.$v.'&'; 
   }
   $postData = rtrim($postData, '&');

    $ch = curl_init();  

    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_HEADER, false); 
    curl_setopt(
            $ch, CURLOPT_HTTPHEADER,
            array(
                    'Accept:application/json'
            )
    );
    curl_setopt($ch, CURLOPT_POST, count($postData));
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);    

    $output=curl_exec($ch);

    curl_close($ch);
    return json_decode($output,true);

}
$params = array(
   "id1" => "OOMS",
   "id2" => "OOSA",
   "routing" => "",
   "dbid" => "2006",
   "k" => "",

);

$data = httpPost("http://rfinder.asalink.net/free/autoroute_rtx.php",$params);
echo $data['routing'] . "\n";
echo $data['tot_dist'] . "\n";
...