如何在PHP中获取PUT / DELETE参数

时间:2013-12-02 04:04:22

标签: php httprequest

我正在编写一个REST Web服务,并且想知道如何处理put或delete参数是PHP。

我正在接受如下输入,

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

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

我如何访问这些变量,如

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

我发现在php中没有像$ _PUT或$ _DELETE来处理输入参数。得到这个的方法是什么?

3 个答案:

答案 0 :(得分:8)

你能尝试这个吗,PHP没有内置的方法来实现这一点,可以从传入的流中读取到PHP,php://input

 parse_str(file_get_contents("php://input"));

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";
}

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

答案 1 :(得分:0)

This answer可能有所帮助。请务必检查您的网络服务器是否支持PUT和DELETE请求,否则请尝试给定的解决方法。

答案 2 :(得分:-1)

不幸的是,默认情况下,php不处理放置或删除请求。我创建了一个库来处理这种请求。它还处理多部分请求(PUT PATCH DELETE等)

您可以在这里https://github.com/notihnio/php-request-parser

找到它