如何检查PHP中POST中是否存在任何参数


How to check if any parameter is present in POST in PHP

我通过POST传递参数,这些参数在Json中编码。我已经在一个PHP文件中捕获了这些参数。JSON编码的参数如下:

{
    "id": "5",
    "name": "abcd",
    "imei": "1234"
}

首先,我捕获了它们如下:

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

然后我解码如下:

$entityBody = json_decode($entityBody, true);

现在我可以访问id如下:

 $entityBody['id']

我想知道POST中是否存在任何参数,比如"description"。如果有人帮我怎么做,我会非常感激。非常感谢。

使用isset检查POST中是否存在"description"

if(isset($_POST['description'])) {
     //your code here
}

编辑

由于您使用的是file_get_contents('php://input');,因此您必须使用

if (isset($entityBody['description'])) {
    //your code here
}

这确实和大多数其他答案所说的一样简单,但您只需要检查$entityBody数组,而不是$_POST数组。

if (isset($entityBody['description'])) {
    // do something
}

为了澄清那些仍然困惑的人,如果POST’ed数据以标准HTML格式编码之一(application/x-www-form-urlencoded或multipart/form-data)进行编码,它将被自动解码并在$_POST数组中可用。

在这种情况下,OP以自定义(json)格式对数据进行POST处理。这意味着$_POST数组将是空的,他们必须自己手动读取和解码POST内容——看起来他们已经开始工作了。

另请参阅:什么是原始后期数据