夏易网络

您的当前位置:首页 > 新闻动态 > 网站建设学堂 >

php函数:计算两个ip之间的距离

2017-08-20 15:18:31   来源:   评论:0 点击:
php函数:计算两个ip之间的距离。有时候我们的网站需要向客户展示出客户与商家的距离有多少公里。通过一个简单的函数我们就可以实现这个距离计算方法。
 
 ($ip01,$ip02分别是商家与客户的ip,获取他们的ip很简单,这里就不说了)

函数如下:
 
function distance($ip01,$ip02, $miles = true)
{
 
 
  $content01 = file_get_contents('http://api.map.baidu.com/location/ip?ak=mG9AchqAzAtWs76jjZguemrO3RFGwalz&ip='.$ip01.'&coor=bd09ll');
  $json01 = json_decode(trim($content01,chr(239).chr(187).chr(191)),true);
  $lat1 = $json01[content][point][x];
  $lng1 = $json01[content][point][y];
  
  
  $content02 = file_get_contents('http://api.map.baidu.com/location/ip?ak=mG9AchqAzAtWs76jjZguemrO3RFGwalz&ip='.$ip02.'&coor=bd09ll');
  $json02 = json_decode(trim($content02,chr(239).chr(187).chr(191)),true);
  $lat2 = $json02[content][point][x];
  $lng2 = $json02[content][point][y];
 
 $pi80 = M_PI / 180;
 $lat1 *= $pi80;
 $lng1 *= $pi80;
 $lat2 *= $pi80;
 $lng2 *= $pi80;
 $r = 6372.797; 
 $dlat = $lat2 - $lat1;
 $dlng = $lng2 - $lng1;
 $a = sin($dlat/2)*sin($dlat/2)+cos($lat1)*cos($lat2)*sin($dlng/2)*sin($dlng/2);
 $c = 2 * atan2(sqrt($a), sqrt(1 - $a));
 $km = $r * $c;
 return ($miles ? ($km * 0.621371192) : $km);
}
 
echo distance('218.247.81.72','14.29.107.231',true);
?>
新闻动态
网站建设学堂
网站优化学堂
网络行业新闻
夏易网络动态
推荐文章
如何查看网站哪些图片或文件影响网站打开速度?
如何让网站打开速度更快之图片压缩
大型企业网站建设需要注意的几个问题
高端企业网站建设PK低端企业网站建设
网站SEO优化是什么意思?
  • 网建
  • 优化
  • 资讯
  • 案列
  • 客服 有事点这里 有事点这里