无法使用PHP in_array来处理XML

时间:2014-04-05 19:31:26

标签: php xml google-maps

我尝试做的是从XML格式的Google地理编码结果中提取特定数据。最终我的目标是用户可以输入他们的邮政编码的网站,网站将自动拉出他们的城市/州/国家/和坐标,但是现在我只是测试看看如果我能让它发挥作用。

这是我到目前为止的代码:

$postcode = 11212; // zip code that will be looked up. Eventually I'll have a user-input the zip code, but for testing purposes this will suffice
$request_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$postcode."&sensor=false"; 
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->status;// GET the request status as google's api can return several responses
if ($status=="OK") {
    foreach($xml->result->address_component as $address_component){
        if(in_array("country", $address_component->type)){
            $country = $address_component->long_name;
            continue;
        } elseif(in_array('locality', $address_component->type)){
            $city = $address_component->long_name;
        }
    }
}
echo "$country";
echo "$city";

对于那些没有看过Geocode XML结果的人来说,这就是它的样子:

https://maps.googleapis.com/maps/api/geocode/xml?address=11212&sensor=false

我已经被困在这里多年了,我觉得我疯了似乎想弄清楚我做错了什么。我知道它可能很简单,或者我只是犯了一个愚蠢的错误哈哈,但我觉得是时候寻求帮助了。

那我在这里做错了什么? 感谢大家的帮助:)

0 个答案:

没有答案