使用PHP的HTTP PUT,DELETE和I/O流
问题描述:
有没有什么方法可以访问通过HTTP PUT方法发送的数据,而不是$putdata = fopen("php://input", "r");
?使用PHP的HTTP PUT,DELETE和I/O流
我从来没有与PUT
和DELETE
方法和$putdata = fopen("php://input", "r");
似乎有点粗略。它能在任何地方工作是否需要特定的服务器/ php.ini配置?
我知道,我可以从$_SERVER['REQUEST_METHOD'];
获得请求的方法,但将数据在$_REQUEST
,如果是,那么什么php://input
是什么? 我如何访问通过DELETE
发送的数据?
答
不,您需要手动解析请求。 $_REQUEST
只包含来自GET
和POST
请求的数据;对于你自己的一切。
如果你的HTTP请求有Content-Type: application/x-www-form-urlencoded
,你可以用parse_str
解析它放回一个变量数组很容易像这样:
您可以使用此内容类型与任何HTTP方法,没有标准 - 强加的限制。
有趣! 'DELETE'也将在'php:// input'中? – rinchik 2013-04-30 21:28:31
@rinchik:'php:// input'包含客户端发送的任何HTTP请求的主体。方法(GET/POST/DELETE/whatever)也是客户的选择。作为主体发送的数据类型也是客户的选择。所以是的,只要服务器知道如何处理客户端发送的*,它就会适用于所有的*。我的例子只说明了一种可能的做事方式,因为它与使用POST提交表单时使用的完全相同。 – Jon 2013-04-30 21:32:28
甜。谢谢^ _^ – rinchik 2013-04-30 21:39:43