【问题标题】:How to get PUT/DELETE arguments in PHP如何在 PHP 中获取 PUT/DELETE 参数
【发布时间】:2013-12-17 17:00:41
【问题描述】:

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

我将输入如下,

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

输出=imei=1234567890&email=hello%40gmail1.com

如何访问这些变量,例如

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

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

【问题讨论】:

  • 您可以将其编码为json格式,然后您可以将它们作为json对象访问。
  • 试试这个parse_str
  • $_SERVER['REQUEST_METHOD']
  • This answer 可能会有所帮助。请务必检查您的网络服务器是否支持 PUT 和 DELETE 请求,但它不支持,请尝试给定的解决方法。

标签: php httprequest


【解决方案1】:

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

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

前:

  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

【讨论】:

    【解决方案2】:

    不幸的是 php 默认不处理 put 或 delete 请求。我创建了一个库来处理这种请求。它还处理多部分请求(PUT PATCH DELETE 等)

    你可以在这里找到它https://github.com/notihnio/php-request-parser

    【讨论】:

    • 虽然我们喜欢答案中的链接,但我们倾向于不鼓励仅链接的答案,因为当链接过期时它们会变得无用。请用更多信息更新您的答案:)
    猜你喜欢
    • 2011-01-06
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 2013-08-03
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多