我需要检查php://input是否存在/isset。它可以在PHP isset()中使用吗?检查它的正确方法是什么?
php://input
isset()
ohtdti5x1#
尝试使用file_get_contents()(用于阅读)+empty()或boolean conversion(用于测试)进行测试:
file_get_contents()
empty()
<?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)则不是。
368yc8dk2#
可以使用file_get_contents获取php://input的内容,并检查返回值,看看它是否被实际设置:
file_get_contents
$input = file_get_contents("php://input"); if ($input) { // set } else { // not set }
xwbd5t1u3#
如果变量存在且不为空,则返回true
$foo = 'bar'; var_dump(isset($foo)); -> true $baz = null; var_dump(isset($baz)); -> false var_dump(isset($undefined)); -> false
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 } }
4条答案
按热度按时间ohtdti5x1#
尝试使用
file_get_contents()
(用于阅读)+empty()
或boolean conversion(用于测试)进行测试:来自php.net:
**注意:**在PHP 5.6 之前,使用
php://input
打开的流只能读取一次;此流不支持查找操作。2但是,根据SAPI实现的不同,可以打开另一个php://输入流并重新开始阅读。3只有在请求主体数据已保存的情况下才有可能。4通常,POST请求是这种情况,但其他请求方法(如PUT或PROPFIND)则不是。368yc8dk2#
可以使用
file_get_contents
获取php://input
的内容,并检查返回值,看看它是否被实际设置:xwbd5t1u3#
如果变量存在且不为空,则返回true
xlpyo6sf4#
假设您正在从POST请求获取用户输入,您可以检查它是否是这样的集合