Search code examples
phphttprequest

How to get PUT/DELETE arguments in PHP


i am writing a REST webservice and would like to know how can i handle put or delete argument is PHP.

i am taking the inputs as following,

$input = file_get_contents('php://input');
echo $input;

output = imei=1234567890&email=hello%40gmail1.com

how can i access these variables like

echo $_POST['imei'];
echo $_POST['email'];
echo $_GET['imei'];
echo $_GET['email'];

i found there is nothing like $_PUT or $_DELETE in php to handle the input params. what is the way to get this ?


Solution

  • Can you try this, PHP doesn't have a built-in way to do this, can be read from the incoming stream to PHP, php://input.

     parse_str(file_get_contents("php://input"),$post_vars);
    

    EX:

      if($_SERVER['REQUEST_METHOD'] == 'GET') {
        echo "this is a get request\n";
        echo $_GET['fruit']." is the fruit\n";
        echo "I want ".$_GET['quantity']." of them\n\n";
    } elseif($_SERVER['REQUEST_METHOD'] == 'PUT') {
        echo "this is a put request\n";
        parse_str(file_get_contents("php://input"),$post_vars);
        echo $post_vars['fruit']." is the fruit\n";
        echo "I want ".$post_vars['quantity']." of them\n\n";
    }
    

    Ref: http://www.lornajane.net/posts/2008/accessing-incoming-put-data-from-php