[英]simplexml_load_file warning error
我有一个简单的函数,可以使用Google提供的简单XML将地址字符串转换为经度和纬度。 我偶尔会收到这个奇怪的警告错误:
警告:simplexml_load_file( http://maps.googleapis.com/maps/api/geocode/xml?address=&sensor=true ):无法打开流:HTTP请求失败! 第193行的/search_results.php中的HTTP / 1.0 500内部服务器错误
警告:simplexml_load_file():I / O警告:无法在第193个网址的/search_results.php文件中加载外部实体“ http://maps.googleapis.com/maps/api/geocode/xml?address=&sensor=true ”未加载
有没有更好的方法来执行此操作以避免此错误?
我的代码如下:
$geo_address = urlencode($address);
$request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$geo_address."&sensor=true";
$xml = simplexml_load_file($request_url) or die ("url not loading");
$status = $xml->status;
if ($status=="OK") {
$lat = $xml->result->geometry->location->lat;
$lon = $xml->result->geometry->location->lng;
}
似乎您正在尝试对空地址进行地址解析。 您应先查询$ geo_address的长度,然后再查询Google
$geo_address = urlencode($address);
if(strlen($geo_address)>0) {
$request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$geo_address."&sensor=true";
$xml = simplexml_load_file($request_url) or die ("url not loading");
$status = $xml->status;
if ($status=="OK") {
$lat = $xml->result->geometry->location->lat;
$lon = $xml->result->geometry->location->lng;
}
} else {
die('Invalid address');
}
您应该使用适合您应用的其他错误管理逻辑替换die()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.