2013-04-30 92 views
4

有没有什么方法可以访问通过HTTP PUT方法发送的数据,而不是$putdata = fopen("php://input", "r");使用PHP的HTTP PUT,DELETE和I/O流

我从来没有与PUTDELETE方法和$putdata = fopen("php://input", "r");似乎有点粗略。它能在任何地方工作是否需要特定的服务器/ php.ini配置?

我知道,我可以从$_SERVER['REQUEST_METHOD'];

获得请求的方法,但将数据在$_REQUEST,如果是,那么什么php://input是什么? 我如何访问通过DELETE发送的数据?

回答

3

不,您需要手动解析请求。 $_REQUEST只包含来自GETPOST请求的数据;对于你自己的一切。

如果你的HTTP请求有Content-Type: application/x-www-form-urlencoded,你可以用parse_str解析它放回一个变量数组很容易像这样:

您可以使用此内容类型与任何HTTP方法,没有标准 - 强加的限制。

+0

有趣! 'DELETE'也将在'php:// input'中? – rinchik 2013-04-30 21:28:31

+0

@rinchik:'php:// input'包含客户端发送的任何HTTP请求的主体。方法(GET/POST/DELETE/whatever)也是客户的选择。作为主体发送的数据类型也是客户的选择。所以是的,只要服务器知道如何处理客户端发送的*,它就会适用于所有的*。我的例子只说明了一种可能的做事方式,因为它与使用POST提交表单时使用的完全相同。 – Jon 2013-04-30 21:32:28

+0

甜。谢谢^ _^ – rinchik 2013-04-30 21:39:43

相关问题