我想在我的web服务中使用PUT
请求进行更新操作,但我不知道如何处理PUT,因为没有像$_PUT
这样的内置变量。
我试过parse_str(file_get_contents("php://input"),$post_vars);
现在,如果我print_r
是$post_vars
,它显示
------WebKitFormBoundaryJnBh3L2DKmMjdVmG Content-Disposition: form-data; name="fruit" vanana ------WebKitFormBoundaryJnBh3L2DKmMjdVmG Content-Disposition: form-data; name="items" 1 ------WebKitFormBoundaryJnBh3L2DKmMjdVmG--
如何获取在发出PUT
请求时传递的确切参数?
您的问题
您的PUT请求具有multipart/form-data
内容类型。所以parse_str
函数无法解析它。
解决方案
您必须使用Content-Type=application/x-www-form-urlencoded
发出PUT请求。然后可以使用parse_str(file_get_contents("php://input"), $post_vars);
进行解析
备注
您将无法上传文件。因为文件需要使用multipart/form-data
有一个超全局$_SERVER
,它包含REQUEST_METHOD
它可以用于识别用于访问页面的请求方法;即"GET"、"HEAD"、"POST"、"PUT"。
因此,您可以在服务器上使用它来识别put请求。