Ответ 1
Имя или услуга не известны
DNS сломался. Можете ли вы ping data.mysite.com
из оболочки на машине (если у вас ее есть)?
Попробуйте заменить data.mysite.com
на фиксированный IP-адрес.
Я просто перенес проект с локального хоста на мой удаленный сервер и заметил, что некоторые из моих скриптов перестали работать. Самое главное - это тот, который полагался на file_get_contents()
для получения значений JSON из другого script.
Версия PHP - 5.2.4 allow_url_fopen
включен.
Предупреждение:
file_get_contents()
[function.file-get-contents]
:php_network_getaddresses
:getaddrinfo
не удалось: имя или служба, не известные в/var/www/html/2009/functions/functions.products.php
online 5
Предупреждение:
file_get_contents(http://data.example.com/new-data.php) [function.file-get-contents]
: не удалось открыть поток:Success in /var/www/html/2009/functions/functions.products.php
online 5
script выполняется от: http://www.example.com
Место, переданное в функцию, - http://data.example.com/new-data.php
Примечание: одно и то же имя домена, но два разных сервера.
function getData() {
$location = "http://data.mysite.com/new-data.php";
$contents = file_get_contents($location);
$jsonVars = json_decode($contents);
return $jsonVars
}
Имя или услуга не известны
DNS сломался. Можете ли вы ping data.mysite.com
из оболочки на машине (если у вас ее есть)?
Попробуйте заменить data.mysite.com
на фиксированный IP-адрес.
Также вы можете попробовать закрутить:
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'http://url.url');
$result = curl_exec($curl);
curl_close($curl);
И вы получите то, что хотите, в $result
.
Посмотрите на свой /etc/hosts на удаленном сервере. Если он пуст, вам нужно добавить '127.0.0.1 localhost'.
Если это не одна из разновидностей VPS, где интерфейс обратной петли попадает на внешнюю машину; на них вам нужно использовать свой IP-номер VPS вместо 127.0.0.1.
Если вы уверены, что это не проблема DNS, попробуйте перезапустить Apache. Это разрешило это для меня после 20 минут царапин на голове.
Пожалуйста, добавьте дополнительную информацию, содержит ли содержимое $? Не забудьте сделать json_decode ($ content, true), если вы хотите, чтобы это было как php-массив, иначе возвращался stdClass.
Может возникнуть проблема с решением имени хоста? является data.mysite.com той же машиной, что и mysite.com?