我只是想用该代码读出谷歌天气api xml,但它返回500.任何想法为什么?
<?php
$url = "http://www.google.com/ig/api?weather=Moskva&hl=en";
$xml = simplexml_load_string(utf8_encode(file_get_contents($url)));
echo $xml->weather->current_conditions->temp_c->attributes()->data;
?>
答案 0 :(得分:2)
将行分开并引入try / catch块,如下所示:
try {
$url = "http://www.google.com/ig/api?weather=Moskva&hl=en";
$temp1 = file_get_contents($url);
$temp2 = utf8_encode($temp1);
$xml = simplexml_load_string($temp2);
echo $xml->weather->current_conditions->temp_c->attributes()->data;
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
然后会发生什么?
<强>更新强>
您的回复是由于您来自的IP地址....这是回复:
http://www.google.com/sorry/?continue=http://www.google.com/ig/api%3Fweather%3DMoskva%26hl%3Den
在浏览器中输入响应URL即可:
我们的系统检测到来自您计算机网络的异常流量。 此页面检查是否确实是您发送请求,以及 不是机器人为什么会这样?
IP地址:90.214.41.66时间:2012-01-06T21:35:24Z网址: http://www.google.com/ig/api?weather=Moskva&hl=en
在浏览器中输入网址并完成验证码 - 应按照
进行排序答案 1 :(得分:0)
问题在于您的PHP配置。
我只是运行代码,结果我得到'2'。没有500错误页面。
答案 2 :(得分:0)
绝对可以是配置。我们有两台服务器,一台是本地服务器,一台是开发/登台。仅运行一行代码即可获取RSS XML数据,它在本地环境下工作正常,但在暂存阶段却可以提供500行代码。绝对是服务器配置问题。