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

时间:2013-07-23 07:24:08

标签: php json post

我通过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'。如果有人帮我怎么做,我将非常感激。谢谢。

2 个答案:

答案 0 :(得分:1)

使用isset检查POST中是否存在“说明”

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

修改

当您使用file_get_contents('php://input');时,必须使用

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

答案 1 :(得分:0)

这实际上就像大多数其他答案一样简单 - 但您只需要检查$entityBody数组,而不是$_POST数组。

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

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

在这种情况下,OP是以自定义(json)格式POST数据。这意味着$ _POST数组将为空,并且必须manually read and decode the POST contents themselves - 它们似乎已经开始工作了。

另请参阅:What is the Raw Post Data