如何检查是否设置了php://输入?

sag*_*its 12 php input wrapper isset

我需要检查是否php://input存在/ isset.它适用于PHP isset()吗?检查它的正确方法是什么?

Bli*_*itZ 13

尝试使用file_get_contents()(用于读取)+ empty()布尔转换(用于测试)来测试它:

<?php
$input = file_get_contents('php://input');

if ($input) {
   // exists
} else {
   // not exists
}
Run Code Online (Sandbox Code Playgroud)

来自php.net:

注意: 在PHP 5.6之前,打开的流php://input只能读取一次; 流不支持搜索操作.但是,根据SAPI实现,可能会打开另一个php://输入流并重新开始读取.只有在保存了请求正文数据后才能执行此操作.通常,这是POST请求的情况,但不是其他请求方法,例如PUT或PROPFIND.