繁体   English   中英

在PHP中读取原始I / O流的替代方法

[英]Alternative way to read raw I/O stream in PHP

我试图找到一个替代阅读php://输入。 我使用它来从CURL PUT获取XML数据。

我通常这样做:

$xml = file_get_contents('php://input');

但是,我在Windows上遇到了一些与file_get_contents()有关的问题。

是否有替代方案,可能使用fopen()fread()

是的,你可以这样做:

$f = fopen('php://input', 'r');
if (!$f)  die("Couldn't open input stream\n");
$data = '';
while ($buffer =  fread($f, 8192)) $data .= $buffer;
fclose($f);

但是,你必须问自己的问题是为什么file_get_contents不能在windows上运行? 因为如果它不起作用,我怀疑fopen会为同一个流工作......

好。 我想我找到了解决方案。

$f = @fopen("php://input", "r");
$file_data_str = stream_get_contents($f);
fclose($f);

另外,有了这个,我没有强制要求放入文件大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM