导航:首页 > 编程语言 > php获取省市区

php获取省市区

发布时间:2022-05-14 17:01:33

‘壹’ php怎么实现输出全国的省市区

<?php return array (
1 =>
array (
'province_name' => '北京市',
'city' =>
array (
1 =>
array (
'city_name' => '市辖区',
'area' =>
array (
1 => '东城区',
2 => '西城区',
3 => '崇文区',
4 => '宣武区',
5 => '朝阳区',
6 => '丰台区',
7 => '石景山区',
8 => '海淀区',
9 => '门头沟区',
10 => '房山区',
11 => '通州区',
12 => '顺义区',
13 => '昌平区',
14 => '大兴区',
15 => '怀柔区',
16 => '平谷区',
),
),
2 =>
array (
'city_name' => '北京周边',
'area' =>
array (
1 => '密云县',
2 => '延庆县',
),
),
),
),
2 =>
array (
'province_name' => '天津市',
'city' =>
array (
1 =>
array (
'city_name' => '市辖区',
'area' =>
array (
1 => '和平区',
2 => '河东区',
3 => '河西区',
4 => '南开区',
5 => '河北区',
6 => '红桥区',
7 => '塘沽区',
8 => '汉沽区',
9 => '大港区',
10 => '东丽区',
11 => '西青区',
12 => '津南区',
13 => '北辰区',
14 => '武清区',
15 => '宝坻区',
),
),
2 =>
array (
'city_name' => '天津周边',
'area' =>
array (
1 => '宁河县',
2 => '静海县',
3 => '蓟县',
),
),
),
),
3 =>
array (
'province_name' => '河北省',
'city' =>
array (
1 =>
array (
'city_name' => '石家庄市',
'area' =>
array (
1 => '长安区',
2 => '桥东区',
3 => '桥西区',
4 => '新华区',
5 => '井陉矿区',
6 => '裕华区',
7 => '井陉县',
8 => '正定县',
9 => '栾城县',
10 => '行唐县',
11 => '灵寿县',
12 => '高邑县',
13 => '深泽县',
14 => '赞皇县',
15 => '无极县',
16 => '平山县',
17 => '元氏县',
18 => '赵县',
19 => '辛集市',
20 => '藁城市',
21 => '晋州市',
22 => '新乐市',
23 => '鹿泉市',
),
),
2 =>
array (
'city_name' => '唐山市',
'area' =>
array (
1 => '路南区',
2 => '路北区',
3 => '古冶区',
4 => '开平区',
5 => '丰南区',
6 => '丰润区',
7 => '滦县',
8 => '滦南县',
9 => '乐亭县',
10 => '迁西县',
11 => '玉田县',
12 => '唐海县',
13 => '遵化市',
14 => '迁安市',
),
),
3 =>
array (
'city_name' => '秦皇岛市',
'area' =>
array (
1 => '海港区',
2 => '山海关区',
3 => '北戴河区',
4 => '青龙满族自治县',
5 => '昌黎县',
6 => '抚宁县',
7 => '卢龙县',
),
),
4 =>
array (
'city_name' => '邯郸市',
'area' =>
array (
1 => '邯山区',
2 => '丛台区',
3 => '复兴区',
4 => '峰峰矿区',
5 => '邯郸县',
6 => '临漳县',
7 => '成安县',
8 => '大名县',
9 => '涉县',
10 => '磁县',
11 => '肥乡县',
12 => '永年县',
13 => '邱县',
14 => '鸡泽县',
15 => '广平县',
16 => '馆陶县',
17 => '魏县',
18 => '曲周县',
19 => '武安市',
),
),
5 =>
array (
'city_name' => '邢台市',
'area' =>
array (
1 => '桥东区',
2 => '桥西区',
3 => '邢台县',
4 => '临城县',

‘贰’ 怎么用php读取数据库方式动态生成省市县三级联动选择框

需要使用到ajax。到网上查下,一堆。代码是固定的。
数据库设置
id,area,areaname
1 210000 辽宁省
2 210100 沈阳市
3 210104 大东区

<select name='area1' id='area1' onchange="get_area2(this.value);">
这里读取省的数据
$sql="select area,areaname from area where right(area,4)='0000'";
</select>
<select name='area2' id='area2 'onchange="get_area(this.value);">
这里根据ajax读取数据,开始的时候是空的
</select>
<select name='area' id='area'>
这里根据ajax读取数据,开始的时候是空的
</select>

方法:
1,首先写get_area2 的js 代码,这里就用到ajax读取,这里获取的数据是区域代码的前两位代码(比如:21)
这个在根据这个21的参数,读取表中相关的市,
$sql="select area,areaname from area where left(area,2)='21' and right(area,2)='00'";
这个语句读取出来21的市代码

2,同一读取出来区的代码

‘叁’ 关于php+mysql+ajax省市区三级联动菜单,求帮助

基本思想就是:在JS动态创建select控件的option,通过Ajax获取在PHP从SQL数据库获取的省市区信息,代码有点长,但很多都是类似的,例如JS中省、市、区获取方法类似,PHP中通过参数不同执行不同的select语句。

index.html代码:

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>省市区三级联动</title>
<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312">
<scriptsrc="scripts/thumbnails.js"type="text/javascript"></script>
</head>

thumbnails.js代码:

window.onload=getProvince;


functioncreateRequest(){//Ajax于PHP交互需要对象

try{

request=newXMLHttpRequest();//创建一个新的请求对象;

}catch(tryMS){

try{

request=newActiveXObject("Msxml2.XMLHTTP");

}catch(otherMS){

try{

request=newActiveXObject("Microsoft.XMLHTTP");

}catch(failed){

request=null;

}

}

}

returnrequest;

}


functionsech(id){//省市改变时触发,select的onchange事件


varaa=document.getElementById(id);

if(id=="sheng"){

getCity(aa.value);//这里aa.value为省的id

}

if(id=="shi")

{

getCounty(aa.value);//这里aa.value为市的id

}


}


functiongetProvince(){//获取所有省

request=createRequest();

if(request==null){

alert("Unabletocreaterequest");

return;

}

varurl="getDetails.php?ID=0";//ID=0时传递至PHP时让其获取所有省

request.open("GET",url,true);

request.onreadystatechange=displayProvince;//设置回调函数

request.send(null);//发送请求

}


functiongetCity(id){//获取省对应的市

request=createRequest();

if(request==null){

alert("Unabletocreaterequest");

return;

}

varurl="getDetails.php?ID="+escape(id);

request.open("GET",url,true);

request.onreadystatechange=displayCity;

request.send(null);

}


functiongetCounty(id){//获取市对应的区

request=createRequest();

if(request==null){

alert("Unabletocreaterequest");

return;

}

varurl="getDetails.php?ID="+escape(id);

request.open("GET",url,true);

request.onreadystatechange=displayCounty;

request.send(null);

}
functiondisplayProvince(){//将获取的数据动态增加至select

if(request.readyState==4){

if(request.status==200){

vara=newArray;

varb=request.responseText;//将PHP返回的数据赋值给b

a=b.split(",");//通过","将这一数据保存在数组a中

document.getElementById("sheng").length=1;

varobj=document.getElementById("sheng');

for(i=0;i

obj.options.add(newOption(a[i],i+1));//动态生成OPTION加到select中,第一个参数为Text,第二个参数为Value值.


}

}

}
functiondisplayCity(){//将获取的数据动态增加至select

if(request.readyState==4){

if(request.status==200){

vara=newArray;

varb=request.responseText;

a=b.split(",");

document.getElementById("shi").length=1;//重新选择

document.getElementById("xian").length=1;//重新选择

if(document.getElementById("sheng").value!="province"){

varobj=document.getElementById('shi');

for(i=0;i

obj.options.add(newOption(a[i],document.getElementById("sheng").value*100+i+1));//ocument.getElementById("sheng").value*100+i+1对应的是市的ID。

}


}

}

}


functiondisplayCounty(){//将获取的数据增加至select

if(request.readyState==4){

if(request.status==200){

vara=newArray;

varb=request.responseText;

a=b.split(",");

document.getElementById("xian").length=1;

if(document.getElementById("sheng").value!="province"&&document.getElementById("shi").value!="city"){

varobj=document.getElementById('xian');

for(i=0;i

obj.options.add(newOption(a[i],i+1001));

}


}

}

}

getDetails.php代码:

<?php

header("Content-Type:text/html;charset=gb2312");

$conn=newCOM("ADODB.Connection")ordie("CannotstartADO");

$connstr="Provider=SQLOLEDB;PersistSecurityInfo=False;UserID=root;Password=123456;InitialCatalog=area;DataSource=localhost";

if($_REQUEST['ID']==0){//获得省列表
$conn->Open($connstr);//建立数据库连接
$sqlstr="selectnamefromProvince";//设置查询字符串
$rs=$conn->Execute($sqlstr);//执行查询获得结果
$num_cols=$rs->Fields->Count();//得到数据集列数
$Province=array();
$i=0;
while(!$rs->EOF){
$Province[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Provinceas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
if($_REQUEST['ID']>0&&$_REQUEST['ID']<35){//获得省对应的市列表
$conn->Open($connstr);//建立数据库连接
$sqlstr="selectnamefromCitywherecid=".$_REQUEST['ID'];//设置查询字符串
$rs=$conn->Execute($sqlstr);//执行查询获得结果
$num_cols=$rs->Fields->Count();//得到数据集列数
$City=array();
$i=0;
while(!$rs->EOF){
$City[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Cityas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
if($_REQUEST['ID']>100){//获得省市对应的县列表
$conn->Open($connstr);//建立数据库连接
$sqlstr="selectnamefromCountywherecid=".$_REQUEST['ID'];//设置查询字符串
$rs=$conn->Execute($sqlstr);//执行查询获得结果
$num_cols=$rs->Fields->Count();//得到数据集列数
$County=array();
$i=0;
while(!$rs->EOF){
$County[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Countyas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
?>

数据库设计,表格Province表,City表,County表。
要求:Province表需要id和name,id建议从1至34,例如北京id为1,广东id为2,以此类推;
City表需要id,name和cid,id为cid*100+1,cid为该市的上级,例如深圳的上级为广东省,cid为2的话,深圳的id就是201,以此类推。
County表需要id,name和cid,因为是三级的关系,id可以随意,建议从10001开始自增。cid为所在上级,例如宝安区的cid为201,龙岗区的cid也为201;

截图:

HTML效果:

‘肆’ php怎么获取当前地理位置

采用PHP向腾讯发送http get request,然后获取相应,获得相应结果后,将结果用正则表达式将需要的地理位置信息提取出来就OK了。当然,PHP发送get请求的方法有很多,我用curl来模拟http请求的方法

Curl是PHP的一个扩展,进行测试之前,先确认PHP已经加载了curl扩展。打开PHP配置文件php.ini,搜索 “extension=php_curl.dll”,将其前面的分号(;)去掉,然后重启HTTP服务器,查看phpinfo(),若能看到curl的信 息,说明PHP扩展curl成功

‘伍’ 正则表达式提取省市县,比如地址是福建省福州市苍山区某某街 或福建省福州市(没有区)求php正则表达式

<?php

$add="福建省福州市苍山区某某街";
preg_match("/(.*?)省(.*?)市(.*?)区(.*?)街/",$add,$adds);
//打印数组
print_r($adds);
//省
echo$adds[1];
//市
echo$adds[2];
//区
echo$adds[3];
//街
echo$adds[4];

‘陆’ php怎样获取用户的所在城市

用ip去定位吧 可以用TB的IP查询接口 链接点开我

‘柒’ PHP获取用户所在城市

functiongetip(){
if(getenv("HTTP_CLIENT_IP")&&strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))
$ip=getenv("HTTP_CLIENT_IP");
elseif(getenv("HTTP_X_FORWARDED_FOR")&&strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown"))
$ip=getenv("HTTP_X_FORWARDED_FOR");
elseif(getenv("REMOTE_ADDR")&&strcasecmp(getenv("REMOTE_ADDR"),"unknown"))
$ip=getenv("REMOTE_ADDR");
elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],"unknown"))
$ip=$_SERVER['REMOTE_ADDR'];
else
$ip="unknown";
return($ip);
}
functiongetIPLoc_sina($queryIP){
$url='http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;
$ch=curl_init($url);//初始化url地址
curl_setopt($ch,CURLOPT_ENCODING,'utf8');//设置一个cURL传输选项
curl_setopt($ch,CURLOPT_TIMEOUT,10);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);//获取数据返回
$location=curl_exec($ch);//执行一个cURL会话
$location=json_decode($location);//对JSON格式的字符串进行编码
curl_close($ch);//关闭一个cURL会话
$loc="";
if($location===FALSE)return"地址不正确";
if(empty($location->desc)){
$loc=$location->city;
}else{$loc=$location->desc;}
return$loc;
}

$SA_IP=getip();
$city=getIPLoc_sina($SA_IP);

‘捌’ thinkphp里面,我要根据小区ID获取它所属的区域城市省份,小区区域城市省份都是单独的一个表。

通过小区的aid获取区域id,在根据区域的cid获取城市id,在根据城市id的pid获取省id。
或者用join函数进行多表查询

‘玖’ thinkphp根据身份证怎么获取所在地区

方法很多,这里举出两种

  1. 通过一些平台接口进行查询,例:有道身份证查询这个(貌似封了),可以自行网络下

  2. 自建数据库查询,原理:身份证号码的前6位是用来做地区区别码的,所以只要找到各个地区的区别码,用正则匹配就可以知道身份证所在地区了

阅读全文

与php获取省市区相关的资料

热点内容
手机号码如何加密 浏览:424
沈阳程序员培训学校 浏览:538
一般服务器如何配置 浏览:895
图片怎样加密发邮件 浏览:619
万虹电脑文件夹密码忘记了怎么办 浏览:631
rc108单片机 浏览:867
战雷如何改变服务器 浏览:674
mactelnet命令 浏览:51
压缩袋压缩了拿出来 浏览:401
安卓手机相机怎么设置权限 浏览:121
美女程序员转行做主播 浏览:671
办理解压房产 浏览:575
道路工程概论pdf 浏览:388
超棒数学速算法大全 浏览:937
小米易语言登录源码 浏览:31
砖墙内加密钢筋 浏览:992
乡关何处pdf 浏览:84
小猪领赞小程序源码 浏览:336
python曲线如何原路返回 浏览:431
pdf快速看图破解版 浏览:295