首頁 >後端開發 >PHP問題 >php怎麼實現定位功能

php怎麼實現定位功能

藏色散人
藏色散人原創
2022-11-07 09:10:281590瀏覽

php實現定位功能的方法:1、註冊成為百度用戶,成為地圖開放平台開發者;2、取得服務金鑰;3、透過百度地圖API介面取得經緯度;4、透過API介面定位到具體位置即可。

php怎麼實現定位功能

本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。

php怎麼實現定位功能?

php實作IP定位

註冊成為百度用戶,成為地圖開放平台開發者,取得服務金鑰。透過百度地圖API介面取得經緯度,進而透過API介面進行全球逆地理編碼服務,簡單說就是透過經緯度再次定位到具體位置。

程式碼為:

<!DOCTYPE  html>
<html>
<head>
<title>IP定位具体位置</title>
</head>
<body>
<form  action="" method="POST">
请输入公网IP:<input   type="text"   name="ip">
<input  type="submit"  name="submit" >
</form>
</body>
</html>
<?php
header("Content-Type:text/html;charset=utf-8;");
$ip=@$_POST[&#39;ip&#39;];
//正则匹配IP
if (preg_match(&#39;/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/&#39;,$ip)){
$url_ip="http://api.map.baidu.com/location/ip?ip=$ip&ak=您的ak&coor=bd09ll";
//注册后得到的服务密钥ak
$str=file_get_contents($url_ip);
$arr=json_decode($str,true);
if ($arr["status"]==0){
$x=$arr[&#39;content&#39;][&#39;point&#39;][&#39;x&#39;];
$y=$arr[&#39;content&#39;][&#39;point&#39;][&#39;y&#39;];
$url="http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=$y,$x&output=json&pois=1&ak=您的ak";
//注意y代表纬度,x代表精度
$str=file_get_contents($url);
//var_dump($str);
//以下自由发挥
preg_match("/{.+}/", $str, $result);
$arr=json_decode($result[0],true);
$num=count($arr["result"]["pois"]);
for ($i=0; $i < $num; $i++) {
echo &#39;<font   color="#ff0000">&#39;.$ip."-----".$arr["result"]["pois"][$i]["addr"]."<br/>";
}
}else{
echo "<h2>not find IP</h2>";
}
}else{
echo "<h2>not  really  IP</h2>";
}
?>

注意替換ak

附加一圖:

php怎麼實現定位功能

##IP定位

推薦學習:《

PHP影片教學

以上是php怎麼實現定位功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn