HTTP PUT, DELETE and I/O streams with PHP
http, http-delete, php, put
Solution
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.
Problem
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`?