Я не могу заставить fopen читать поток контента в PHP. Ошибки не возникает, содержимое всегда пустая строка.
Вот мой код:
$contents='';
$handle = fopen("php://stdin", "r") or error_log('got some error');
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
error_log($contents);
Затем от почтальона я отправляю запрос POST по URL-адресу моего сервера, например
POST http://myserverurl/index.php
Я отправляю почтовые данные по указанному выше запросу, я также пробовал закодированные формы, двоичные и необработанные данные.
Но error_log записывает пустую строку в файл журнала, что означает, что fopen действительно работал, но получил пустое содержимое.
Я также проверил настройки php.ini, и настройка allow_url_fopen также верна.
Я тестирую это на nginx с PHP7.1-fpm. Недавно я перешел с Apache и PHP 5.6 на nginx и php7.1-fpm, и он перестал работать.
Он полностью работал с Apache и PHP5.6.
Что здесь не так? Любая помощь будет высоко оценена.