使用CURL和JSON获取数据

问题描述 投票:0回答:1

我正在尝试使用Curl获取数据我试图获得最好的结果,但是我得到了但我的目标是获得特定行而不是所有行。

请参阅我的代码,请帮助获得结果“路由”和“ 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"}]}

但是我只需要“ Routing”和“ tot_dist”

php html curl post
1个回答
0
投票

一旦提出请求,您将获得所有数据。然后,您可以选择所需的内容。这是您的代码应仅选择routingtot_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";
© www.soinside.com 2019 - 2024. All rights reserved.