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

Obi*_*ill 5 php io file-io

我正在尝试寻找阅读 php://input 的替代方法。我使用它从 CURL PUT 获取 XML 数据。

我通常这样做:

$xml = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)

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

有没有替代方案,也许使用fopen()fread()

irc*_*ell 2

是的,你可以这样做:

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

但是,您必须问自己的问题是为什么不能file_get_contents在 Windows 上工作?因为如果它不起作用,我怀疑fopen是否适用于同一个流......