2010-10-14 3 views
3

Когда мы используем file_get_contents, что использует PHP для разрешения имени домена (локальный DNS?).Как использовать file_get_contents() за прокси?

Я спрашиваю, потому что я получил эту ошибку:

Warning: file_get_contents(http://external-domain.com) [function.file-get-contents]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\test.php on line 11

мне удалось исправить эту точную ошибку ранее, когда я использовал file_get_contents() на внутренний URL т.е. http://localhost:9090, проблема заключалась в том, что у меня не было отображение localhost до 127.0.0.1 в моем файле hosts на моей машине Windows. Добавив это, я смог использовать file_get_contents() по внутренним URL-адресам.

Можно ли это устранить аналогичным образом?

+0

Это не похоже на проблему DNS. Что произойдет, если вы попробуете другой внешний домен? Может ли это быть проблемой межсетевого экрана? –

+0

Ну, я боюсь, что это совершенно другое дело, если его внешний домен обрабатывает DNS не должен быть проблемой, похоже, что на другом сайте есть проблема, чтобы ответить, вы пытались использовать завиток? – Hannes

+0

URL-адрес, к которому я обращаюсь, является правильным и может быть доступен браузером на одном и том же сервере. – Abs

ответ

2

У меня была эта проблема, потому что значение default_socket_timeout в php.ini было слишком маленьким.

Я бы попытался удвоить его значение в вашем случае, чтобы узнать, исправляет ли он проблему.

1

У меня была аналогичная проблема (но файл на том же сервере), на котором у меня часы, чтобы узнать. Тогда это сделал трюк:

$fileUrl = "http://selfDomain.com/file.txt"; 

//external path to local path fix 
$fileUrl = str_replace($_SERVER["SERVER_NAME"], $_SERVER["LOCAL_ADDR"], $fileUrl); 
+0

Вы, сэр, просто очень помогли мне. Спасибо. – Ducain

0

Просто используйте это, Ваша проблема решена.

file_get_contents("http://external-domain.com",true) 
Смежные вопросы