开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

PHP:获取 POST JSON

我最近在 Mozilla 的工作让我在 Bugzilla 和 Phabricator 之间创建了一个类似 OAuth 的身份验证事务。这个任务让我回到了 PHP 的世界,除了为这个博客创建 WordPress 主题和插件之外,我没有接触太多语言(从版本 ~5.2 开始)。回到多年未接触的语言感觉就像是一种全新的体验;您会注意到在过去的几年中您不会猜到的模式和方法。

部分身份验证交易要求 Phabricator 接收包含 JSON 数据的 POST 请求。我原以为数据会落在 $_POST 中,但变量是空的;我到底是怎么得到 POST 数据的?要使用 PHP 获取 POST JSON,请使用以下命令:

# Get JSON as a string
$json_str = file_get_contents('php://input');

# Get as an object
$json_obj = json_decode($json_str);

file_get_contents,虽然我只是用来从本地文件或传统 URL 中检索内容,但它允许您使用特殊的 php://input 地址检索 JSON数据作为字符串。从那里您可以使用 json_decode 将 JSON 字符串转换为可用的对象/数组。

JSON 不通过正常的 $_POST 处理是有道理的,因为实际上没有 key 本身;本质上,您只需要作为一个整体的数据“blob”,它由 php://input 提供。您可以使用 cURL 测试 JSON+POST 处理。

未经允许不得转载:我爱分享网 » PHP:获取 POST JSON

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏