根据NAME自动将POST JSON分配给变量


Automatically assign POST JSON to a variable based on NAME

使用这里发现的代码,我将输入字段发布到php脚本。结果如下所示

 data:{
"textfield": ["",""],
"dropdown": ["option1","option1"],
"siteTitle":"this is the site title",
"siteKey":"",
"siteurl":"",
"address1":"",
"address2":"",
"address3":"",
"landline":"",
"method":"addSite",
"small-input":"",
"medium-input":"",
"large-input":""
}

我使用下面的代码挑选每个字段。

 $data = $_POST['data'];
 $data =stripslashes($data);
 $obj = json_decode($data); 
 $siteTitle = sanitize($obj->siteTitle);
 if (!$siteTitle){echo json_encode(array("msg"=> "Site title missing"));break;}

是否有一种方法在php中自动步进每个张贴的field并将其分配给基于name的变量?

对于那些担心dsamuevu的人,请不要担心。

$obj = json_decode($data);
foreach($obj as $key => $val)
{
    $$key = $val;
}
var_dump($method); // 'addSite'

你可以这样做:

$array = json_decode($json, true);
extract($array);

但是让我强烈建议你不要这样做。这是一种极其懒惰的编程,使您的脚本容易受到变量注入攻击,并且基本上试图重现PHP在其"register_global defaults to on"的臭名昭着的日子中可怕愚蠢的糟糕时代。