我需要检查php://input
是否存在/ isset。它适用于php isset()
吗?检查它的正确方法是什么?
答案 0 :(得分:13)
尝试使用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
打开的流只能读取一次;流不支持搜索操作。但是,根据SAPI实现,可能会打开另一个php://输入流并重新开始读取。只有在保存了请求正文数据后才能执行此操作。通常,这是POST请求的情况,但不是其他请求方法,例如PUT或PROPFIND。
答案 1 :(得分:2)
您可以使用file_get_contents
获取php://input
的内容并检查返回值以查看它是否已实际设置:
$input = file_get_contents("php://input");
if ($input) {
// set
}
else {
// not set
}
答案 2 :(得分:1)
如果变量存在且非空
,则返回true$foo = 'bar';
var_dump(isset($foo)); -> true
$baz = null;
var_dump(isset($baz)); -> false
var_dump(isset($undefined)); -> false
答案 3 :(得分:-2)
假设您从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
}
}