【发布时间】:2019-09-20 07:18:30
【问题描述】:
我无法让 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);
然后我从 Postman 向我的服务器 url 发送 POST 请求,例如
发布http://myserverurl/index.php
我确实根据上述请求发送了帖子数据,我也尝试过表单编码、二进制和原始数据。
但是 error_log 将空字符串记录到日志文件中,这意味着 fopen 确实有效但它得到了空内容。
我也检查了 php.ini 设置,并且 allow_url_fopen 设置也为真。
我正在使用 PHP7.1-fpm 在 nginx 上对此进行测试。我最近从 Apache 和 PHP 5.6 切换到 nginx 和 php7.1-fpm,但它停止了工作。
在 Apache 和 PHP5.6 上运行良好。
这里有什么问题? 任何帮助将不胜感激。
【问题讨论】: