问题
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