Почему не приходят данные через контекст потока функции file_get_contents?

Точнее данные приходят, если указать в первом параметре file_get_contents например 'https://php.net'. А если указать локалхост localhost:4000/handler.php то просто бесконечная перезагрузка
<?php
  $opts = [
    'http' => [
      'method' => 'GET'
    ]
  ];
  $context = stream_context_create($opts);

  echo file_get_contents(
    'http://localhost:4000/handler.php',
    false,
    $context
  );
?>


Файл handler.php:
<?php
  echo 7;
?>
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
Если вы используете встроенный веб-сервер то запрос к самому себе посылать нельзя.

Из документации:

Веб-сервер выполняет только один однопоточный процесс, поэтому приложения PHP будут останавливаться, если запрос заблокирован.


В данном случае сервер не может отправить запрос к localhost:4000/handler.php потому-что для начала ему нужно завершить запрос к файлу где у вас выводится file_get_contents(). В то-же время он не может завершить запрос к файлу с file_get_contents() потому-что для этого нужно завершить запрос к localhost:4000/handler.php, в итоге сервер висит.

Переходите на Apache или Nginx
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.
от 55 000 до 80 000 руб.
WACDAQ Москва
от 120 000 руб.
24 авг. 2019, в 20:50
780 руб./в час
24 авг. 2019, в 19:17
5000 руб./за проект
24 авг. 2019, в 18:45
3011 руб./за проект