从PHP中的$ _POST对象获取键/值的最佳方式是什么?
问题描述:
我有下面的对象被发布到PHP服务器。
payload={
"sms_messages": [
{
"created": "Tue, 08 Jan 2013 23:25:08 +0000"
"id": "5e8dd0d21e4b615e588e88848279634a",
"from": "xxxxxxxxxxx",
"destination": "xxxxxxxxxx",
"message": "Hi. This is an inbound message"
}
]
}
我想回显'from'键,但是我不确定如何在PHP中执行此操作。
我的猜测是这样的:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
echo $_POST['payload']['sms_messages']['from'];
}
然而,这会返回一个错误:
Illegal string offset 'sms_messages'
答
$payload = json_decode(file_get_contents('php://input'));
if ($payload && isset($payload->sms_messages) && is_array($payload->sms_messages)) {
foreach($payload->sms_messages as $msg) {
// handle each message here, e.g. by accessing $msg->from
print_r($msg); // debug output
}
}