php實現定位功能的方法:1、註冊成為百度用戶,成為地圖開放平台開發者;2、取得服務金鑰;3、透過百度地圖API介面取得經緯度;4、透過API介面定位到具體位置即可。
本教學操作環境: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['ip']; //正则匹配IP if (preg_match('/^(?: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}$/',$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['content']['point']['x']; $y=$arr['content']['point']['y']; $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 '<font color="#ff0000">'.$ip."-----".$arr["result"]["pois"][$i]["addr"]."<br/>"; } }else{ echo "<h2>not find IP</h2>"; } }else{ echo "<h2>not really IP</h2>"; } ?>
注意替換ak
附加一圖:
##IP定位推薦學習:《PHP影片教學》
以上是php怎麼實現定位功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!