Почему file_get_contents работает с google.com, а не с моим сайтом? - PullRequest
8 голосов
/ 16 мая 2011
$page1 = file_get_contents('http://www.google.com');

$page2 = file_get_contents('http://localhost:8000/prueba');

Когда я повторяю результаты, с Google это работает, но не с моим сайтом. И когда я ставлю адрес в проводнике работает. И это происходит со всем сайтом, который я делаю в Django. (

Предупреждение: file_get_contents (http://localhost:8000/prueba) [function.file-get-contents]: не удалось открыть поток: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключено хост не ответил. в C: \ xampp \ htdocs \ squirrelmail \ plugins \ captcha \ backends \ b2evo \ b2evo.php в строке 138

Неустранимая ошибка: максимальное время выполнения 60 секунд превышено в C: \ xampp \ htdocs \ squirrelmail \ plugins \ captcha \ backends \ b2evo \ b2evo.php в строке 138

1 Ответ

20 голосов
/ 03 сентября 2014

Для тех, у кого возникла эта проблема при использовании встроенного веб-сервера PHP (с Laravel в моем случае), это вызвано тем, что ваш запрос заблокирован функциями file_get_contents () / curl.

Документы сервера разработки говорят, что

PHP-приложения остановятся, если запрос заблокирован.

Поскольку встроенный сервер PHP является однопоточным, запрашивается еще один URL на вашем сервере. остановит первый запрос, и он получит тайм-аут.

В качестве решения вы можете использовать nginx ( LEMP stack ) или другие веб-серверы.

Редактировать: На данный момент я действительно предлагаю вам использовать Homestead в качестве среды разработки для проектов PHP. Это экономит вам массу работы с конфигурацией, созданием виртуальных хостов и конфигурацией БД для большего количества проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...