2016-10-25 240 views
0

我收到数据后这样从数据流中获取数据后如何恢复数据?

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

我想放回流的数据,所以我修改方法如下上述方法

$stream = fopen('php://temp', 'w+'); 
stream_copy_to_stream(fopen('php://input', 'r'), $stream); 
rewind($stream); 

的instaed但它无法正常工作。任何人都可以告诉我做错了吗? 这个案例需要在wordpress插件开发中。如果一个插件读取发布数据,其他插件无法获取该数据。
谢谢

回答

0

documentation,php://input中所述,只能读取一次,不支持查找操作。

多次“读取”输入流的唯一方法是将其副本传递到您的程序中。

+0

这种情况需要在WordPress插件的研究与开发。如果一个插件读取发布数据,其他插件无法获取该数据。我们无法通过该副本。 – rajkuppus

+0

在这种情况下,您将无法使用'''php:// input'''。我没有使用wordpress的经验,但我确定它必须允许您以某种方式访问​​原始请求数据,所以我会查看它。如果没有,你总是可以在github上提出问题。 –

0

PHP输入流包含请求正文,只有请求包含正文时,您的示例才会有效。

curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d 'sample body' "YOUR_ADDRESS" 

对于校验添加到代码:

echo fgets($stream); 

PHP://输入不可用ENCTYPE = “多部分/格式数据”。

http://php.net/manual/en/wrappers.php.php