PHP SimpleXML导致Servererror 500

时间:2012-01-06 21:03:00

标签: php simplexml

我只是想用该代码读出谷歌天气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;
?>

3 个答案:

答案 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行代码。绝对是服务器配置问题。