【问题标题】:PHP SimpleXML leads to Servererror 500PHP SimpleXML 导致 Servererror 500
【发布时间】:2012-02-04 13:48:22
【问题描述】:

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

【问题讨论】:

  • 为我工作没有任何错误....日志中有什么?输出 "2" 但可以 print_r 整个 $xml
  • 当您开始注释行时会发生什么?当您在 url 上调用文件获取内容时会发生什么?当您尝试调试此代码时会发生什么?
  • 一切正常,直到我这样做 echo $xml->weather->current_conditions->temp_c->attributes()->data;
  • @user1005619 将 echo 行更改为 print_r($xml); 会返回什么?
  • 为什么投反对票?所有反对者至少会发表评论......

标签: php simplexml


【解决方案1】:

问题出在您的 PHP 配置中。

我只是运行代码,结果得到“2”。没有 500 错误页面。

【讨论】:

    【解决方案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

    在浏览器中输入 URL 并完成验证码 - 然后应该排序

    【讨论】:

    • 您能否 a) 将该页面的整个源代码添加到您的问题中... b) 检查您的 Web 服务器/php 日志文件是否有错误并将它们发布到您的问题中
    • a) 这是整个 src b) 我该怎么做?它是付费服务器,但我认为我无法访问它们
    • OK - 首先尝试注释掉除了 file_get_contents 行之外的每一行,看看这是否仍然给您带来问题 - 尝试确定哪一行给您带来错误
    • 好吧对不起..你能试试我的其他建议吗 - 将回声线改为print_r($xml);
    • 只返回网站负载
    【解决方案3】:

    绝对可以是配置。我们有两台服务器,一台本地服务器,一台开发/登台。只运行一行代码来获取 RSS XML 数据,它在本地工作得很好,但在暂存时给出 500。这肯定是服务器配置问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-22
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多