繁体   English   中英

simplexml_load_file警告错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM