2013-04-23 81 views
2

我完全不熟悉php的python。在python中,我非常熟悉從網頁獲取json結果。然而無論我似乎在PHP中做的不工作。我正在使用的代碼是。php代碼(獲得json結果)

<?php 
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=hello&safe=off"; 
$data = json_decode(file_get_contents($url)); 
echo $data; 
?>` 

但是這完全沒有。我在做什麼有什麼不對?我也通過ideone.com運行它,並得到這些錯誤。

`PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/VQMKwy/prog.php on line 3 

PHP Warning:file_get_contents(http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=hello&safe=off): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/VQMKwy/prog.php on line 3` 
+0

服務器/ DNS配置問題也許? – deceze 2013-04-23 03:35:57

+2

確保'php.ini'中的'allow_url_fopen = 1'和 – Rob 2013-04-23 03:36:13

+0

以及echo $ data;是不正確的。你需要做print_r($ data)。 print_r是數組。 – wayne 2013-04-23 03:41:32

回答

1

只要你解決上面貼的問題(這似乎與你的服務器配置,爲file_get_contents正常工作對我來說),你會遇到另一個錯誤。

json_decode將返回類stdClass的對象。你不能只是echo那。 呼應數組的最快方法是使用

var_dump($data); 

除此之外,代碼運行我的本地機器的罰款。我剛剛更換echovar_dump


hint posted by Rob要解決這個問題,但如果沒有,如果你在Apache上運行嘗試運行此命令:

sudo rc.d stop httpd; sudo rc.d start httpd 

這將迫使Apache停止並開始更新/etc/resolv.conf

+0

var_dump($ data);爲此工作。並且服務器問題來自在代碼測試站點上運行它。我在我的實際服務器上運行它,一切正常。 – user2193004 2013-04-23 03:50:05

+0

謝謝你。 – user2193004 2013-04-23 03:52:13

+0

如果帖子幫助你,請不要忘記標記爲正確。謝謝 – Saturnix 2013-04-23 03:54:39