猿问

post 请求中的括号

我使用 wordpress 和 activecampaign 插件。我正在尝试使用 webhook 将联系人电子邮件数据发送到 php 页面,我可以在其中使用此信息执行某些操作。我如何接收 php 中结构如下的数据:

编码

contact%5Bid%5D=67330&contact%5Bemail%5D=asdf%40d.nl&contact%5Bfirst_name%5D=sadf&contact%5Blast_name%5D=asdf&contact%5Bphone%5D=%2B1063494959&contact%5Borgname%5D=&contact%5Bcustomer_acct_name%5D=&contact%5Btags%5D=&contact%5Bip4%5D=0.0.0.0&seriesid=266

已解码

contact[id]=67330&contact[email]=asdf@d.nl&contact[first_name]=sadf&contact[last_name]=asdf&contact[phone]=+1624567935&contact[orgname]=&contact[customer_acct_name]=&contact[tags]=&contact[ip4]=0.0.0.0&seriesid=266

我尝试使用$email = $_POST["contact[email]"];但没有运气。


紫衣仙女
浏览 112回答 2
2回答

皈依舞

每当您使用括号作为要在 POST 中发送的数据的标识符时,它都会$key=>$value在您的情况下形成类似关联数组的关系,例如,如果contact[email]已通过 post 请求接收到,它将类似于以下形式的关联数组$contact=>$email:在这种情况下可以通过使用来访问,$_POST['contact']['email']因为数据将采用以下数组结构Array ( [contact] => Array ( [email] => someone@somewhere.com ) )总结一下,如果您刚刚复制了以下内容,您的上述请求将会起作用$email=$_POST['contact']['email'];如果答案有效,请不要忘记接受并投票,以便其他人受益并轻松找到正确的答案。如果您遇到进一步的问题,请随时在评论中提问。和平 ;-)

慕斯709654

您可以将 Explode 与 urldecode 函数一起使用:看例子:$query = "my=apples&are=green+and+red";foreach (explode('&', $query) as $chunk) {&nbsp; &nbsp; $param = explode("=", $chunk);&nbsp; &nbsp; if ($param) {&nbsp; &nbsp; &nbsp; &nbsp; printf("Param\"%s\" - \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));&nbsp; &nbsp; }}
随时随地看视频慕课网APP
我要回答