这些错误让我烦恼了一天,我甚至不知道如何修复它。我有一个运行超过一年的网站,没有任何问题。基本上,当我通过表单向数据库添加新记录时,它使用来自google maps api的地理编码来获取xml纬度和经度响应,然后将记录插入到db中。但是当我昨天尝试这样做时它返回了错误
“警告:simplexml_load_file()[function.simplexml-load-file]:http://maps.googleapis.com/maps/api/geocode/xml?Key=”MY-API-KEY“& address = 411 + Church + Street ++%2C + Parramatta + NSW + 2150%2C + Australia& sensor = false:1:解析器错误:文档在第40行的/MY-SITE-DIR/geoCode-1.php中为空。“
当我将url直接放入浏览器时,它返回一个完美的xml,这意味着我的url实际上是好的。我研究了一整天并找到了一些解决方案,以下内容最符合我的问题:
This One是添加用户代理。但它在我的情况下不起作用。
有人有什么建议吗?以下是我的相关代码:
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->Response->Status->code;
if (strcmp($status, "200") == 0) {
// Successful geocode
$geocode_pending = false;
$coordinates = $xml->Response->Placemark->Point->coordinates;
$coordinatesSplit = split(",", $coordinates);
// Format: Longitude, Latitude, Altitude
$lat = $coordinatesSplit[1];
$lng = $coordinatesSplit[0];
$query = sprintf("UPDATE orthodontist " .
" SET lat = '%s', lng = '%s' " .
" WHERE id = '%s' LIMIT 1;",
mysql_real_escape_string($lat),
mysql_real_escape_string($lng),
mysql_real_escape_string($id));
$update_result = mysql_query($query);
if (!$update_result) {
die("Invalid query: " . mysql_error());
}
}
答案 0 :(得分:1)
API V2几天前就停止了工作。我可以通过您的代码看到您正在使用API V2。
您需要使用API v3 以下是与v3一起使用的PHP代码示例
www.fcsoftware.co.uk/blog/?p=66