2012-01-06 44 views
-4

我只想用该代码读出谷歌天气api xml,但它返回500.任何想法为什么?PHP SimpleXML导致Servererror 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

厂对我来说没有任何错误....什么是日志?输出“2”,但可以打印整个'$ xml' – ManseUK 2012-01-06 21:05:44

+0

当你开始注释行时会发生什么?当你调用文件获取URL上的内容时会发生什么?当您尝试调试此代码时会发生什么? – afuzzyllama 2012-01-06 21:06:07

+0

一切正常,直到我回声$ xml-> weather-> current_conditions-> temp_c-> attributes() - > data; – bluewhile 2012-01-06 21:21:04

回答

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并完成CAPTCHA - 应该将分类

+0

你能a)添加整个来源从该网页到您的问题... b)检查您的Web服务器/ PHP日志文件的错误,并发布到您的问题 – ManseUK 2012-01-06 21:12:14

+0

a)这是整个src b)我该怎么做?它是一个付费服务器,但我不认为我有他们的存取权 – bluewhile 2012-01-06 21:19:19

+0

行 - 首先尝试评论everyline,除了file_get_contents行,看看这是否给你的问题仍然 - 尝试确定哪一行给你错误 – ManseUK 2012-01-06 21:22:48

-1

问题出在您的PHP配置。

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