我通过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内容——看起来他们已经开始工作了。
另请参阅:什么是原始后期数据