如何检查php://input是否已设置?

eqqqjvef  于 2023-01-08  发布在  PHP
关注(0)|答案(4)|浏览(159)

我需要检查php://input是否存在/isset。它可以在PHP isset()中使用吗?检查它的正确方法是什么?

ohtdti5x

ohtdti5x1#

尝试使用file_get_contents()(用于阅读)+empty()boolean conversion(用于测试)进行测试:

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

if ($input) {
   // exists
} else {
   // not exists
}

来自php.net
**注意:**在PHP 5.6 之前,使用php://input打开的流只能读取一次;此流不支持查找操作。2但是,根据SAPI实现的不同,可以打开另一个php://输入流并重新开始阅读。3只有在请求主体数据已保存的情况下才有可能。4通常,POST请求是这种情况,但其他请求方法(如PUT或PROPFIND)则不是。

368yc8dk

368yc8dk2#

可以使用file_get_contents获取php://input的内容,并检查返回值,看看它是否被实际设置:

$input = file_get_contents("php://input");
if ($input) {    
    // set     
}
else {
   // not set
}
xwbd5t1u

xwbd5t1u3#

如果变量存在且不为空,则返回true

$foo = 'bar';
var_dump(isset($foo));        -> true

$baz = null;
var_dump(isset($baz));        -> false

var_dump(isset($undefined));  -> false
xlpyo6sf

xlpyo6sf4#

假设您正在从POST请求获取用户输入,您可以检查它是否是这样的集合

if(isset($_POST['var_name']))
 {
      //for additional checking  like if  it's not  empty do this
      if(!empty($_POST['var_name']))
      {
           //Do whatever you want here
      }
 }

相关问题