php獲取騰訊行政劃分

<?php

require_once 'dbModel.php';
$database = new dbModel();

if ($database->has("json_table", [
	"AND" => [
		"area_id" => $_GET['id']
	]
])) {
	//如果表中已經有記錄了,就不再到騰訊服務器上獲取,直接返回給前段,騰訊每個key是有規定的調用量的
	$datas = $database->select("json_table", [
		"content"
	], [
		"area_id" => $_GET['id']
	]);
	echo json_encode(getData($datas), JSON_UNESCAPED_UNICODE); 

} else {
	// 表中沒有記錄必須到騰訊服務器獲取,然後存放到數據庫中。這裏表中的字段是json格式的,mysql版本5.7.之前版本不行哦
	$s = file_get_contents("https://apis.map.qq.com/ws/district/v1/getchildren?id={$_GET['id']}&key=5Y5BZ-****-****-****-****-****");
	$database->insert("json_table", [
		"content" => $s,
		"area_id"=>$_GET['id']
	]);
	echo json_encode($s, JSON_UNESCAPED_UNICODE);
}

/**  tp5內置函數
  * 獲取對象原始數據 如果不存在指定字段返回false
  * @access public
  * @param string $name 字段名 留空獲取全部
  * @return mixed
  * @throws InvalidArgumentException
  */
 public function getData($name = null)
 {
     if (is_null($name)) {
         return $this->data;
     } elseif (array_key_exists($name, $this->data)) {
         return $this->data[$name];
     } else {
         throw new InvalidArgumentException('property not exists:' . $this->class . '->' . $name);
     }
 }

https://lbs.qq.com/webservice_v1/guide-region.html 這是騰訊的提供行政區域劃分的網址,可以自己註冊一個key,個人也可以的。提供中國標準行政區劃數據,可用於生成城市列表控件等功能時使用。在前端之前都是把行政區域劃分都保存在前段,會遇見行政區域劃分變動,客戶反應區域不對,這時候改前端重新發布,很麻煩。現在是客戶反應那個行政區域不對,就在數據庫中刪除那個記錄就可以了。

數據表結構,主要是注意json格式,mysql版本5.7.其他字段自己完善,這裏只是演示一下。

表的記錄,當參數爲0時,獲取全國行政區域

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章