2013-04-23 4 views
2

Я совершенно не знаком с php с python. в python, я довольно хорошо знаком с получением результатов json на веб-страницах. однако, что бы я ни делал в php, не работает. код, который я использую, есть.php code (получение результатов 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

+2

убедитесь, что 'allow_url_fopen = 1' в' php.ini' – Rob

+0

, а также echo $ data; не является правильным. вам нужно сделать print_r ($ data). print_r для массива. – wayne

ответ

1

Как только вы будете решать эту проблему размещенной выше (который, кажется, связанную с конфигурацией сервера, а file_get_contents отлично работает для меня) вы встретите другую ошибку.

json_decode вернет объект класса stdClass. Вы не можете просто echo. Самый быстрый способ эхо массив состоит в использовании

var_dump($data); 

кроме того, код работает отлично на моей локальной машине. Я только что заменил echo с var_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

+0

спасибо за это. – user2193004

+0

Пожалуйста, не забудьте отметить как правильно, если сообщение вам помогло. благодаря – Saturnix