一、准备全国经纬度数据文件
二、看代码
fwrite(STDOUT,"请输入城市名:");
$city = trim(fgets(STDIN));
format_long_la($city);
function format_long_la($city){
$arrtemp = get_long_la($city=$city);
if(count($arrtemp)==1){
$newarr = explode(" ",$arrtemp[0]);$length = count($newarr);
$long = explode(":",$newarr[$length-1]);//经度数组
$la = explode(":",$newarr[$length-2]);//纬度数组
$arr = array_merge($la,$long);$len = count($arr);
for($i=0;$i<$len;$i++){//删除不能转换为数字类型的值
if(!is_numeric($arr[$i])){
unset($arr[$i]);
}
}
print_r($arr);
echo date("Y M d D")."\n北纬".$arr[3]."\n东经".$arr[1]."\n".$city."的\n日出时间是:"
.date_sunrise(time(),SUNFUNCS_RET_STRING,$arr[3],$arr[1],90,8)."\n";
echo "日落时间是:".date_sunset(time(),SUNFUNCS_RET_STRING,$arr[3],$arr[1],90,8)."\n";
fwrite(STDOUT,"请输入城市名:");
$city = trim(fgets(STDIN));
format_long_la($city);
}else if(empty($arrtemp)){
fwrite(STDOUT,"\n地址不存在,请输入详细地址:");
$city = trim(fgets(STDIN));
format_long_la($city);
}else{
echo print_r(get_long_la($city=$city));
fwrite(STDOUT,"\n包含".$city."的结果太多,请输入城市名:");
$city = trim(fgets(STDIN));
format_long_la($city);
}
}
function get_rise_time(){}
function get_set_time(){}
function get_long_la($city="北京"){
$arr = array();
$file = 'thelongitudeandlatitude.html';
if(file_get_contents($file)){
$str = file_get_contents($file);
}else{
echo "文件不存在!";
}
$str = trim($str);
$arr = explode("【",$str);$length = count($arr);//取'【'进行切割
$strtemp = array();$ij= "";
for($i = 1;$i < $length;$i++){
if(!empty($arr[$i])&&$arr[$i]!=""){
$arr[$i] = explode(";",$arr[$i]);//取';'进行切割
$len = count($arr[$i]);
}
for($j = 0;$j<$len;$j++){
if(!empty($arr[$i][$j])&&$arr[$i][$j]!=""){
$ij = $arr[$i][$j];
}
//echo "arr$i-$j:".$ij."</br>";
if(strpos($ij,$city)){
$strtemp[] = $ij;//break 2;//跳出双重循环,执行下边的语句
}
}
}
return $strtemp;
}
将代码与全国经纬度数据放在同一目录下,在php CLI环境下执行该文件就可。
三、其他:全球78707个地址经纬度数据
近期评论