HTTP PUT, DELETE and I/O streams with PHP

末鹿安然 提交于 2019-12-22 08:24:01

问题


Is there any way I can access data that was sent via HTTP PUT method other than $putdata = fopen("php://input", "r");?

I have never worked with PUT and DELETE methods and $putdata = fopen("php://input", "r"); seems a bit sketchy. Will it work everywhere is a specific server/php.ini configuration required?

I know that I can get the request method from $_SERVER['REQUEST_METHOD'];

But will the data be in $_REQUEST, if yes then what php://input is about? And how do I access data that was sent via DELETE?


回答1:


No, you will need to parse the request manually. $_REQUEST only contains data coming from GET and POST requests; for everything else you are on your own.

If your HTTP request has Content-Type: application/x-www-form-urlencoded, you can parse it back into a variables array very easily with parse_str like this:

parse_str(file_get_contents('php://input'), $vars);
print_r($vars);

You can use this content type with any HTTP method, there is no standard-imposed limitation.



来源:https://stackoverflow.com/questions/16309065/http-put-delete-and-i-o-streams-with-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!