php检测post请求,在PHP中检测请求类型(GET,POST,PUT或DELETE)

如何检测PHP中使用了哪种请求类型(GET,POST,PUT或DELETE)?

#1楼

由于这与REST有关,因此仅从服务器获取请求方法是不够的。 您还需要接收RESTful路由参数。 分离RESTful参数和GET / POST / PUT参数的原因是,资源需要具有自己的唯一URL进行标识。

这是使用Slim在PHP中实现RESTful路由的一种方法:

$app = new \Slim\Slim();

$app->get('/hello/:name', function ($name) {

echo "Hello, $name";

});

$app->run();

并相应地配置服务器。

这是使用AltoRouter的另一个示例:

$router = new AltoRouter();

$router->setBasePath('/AltoRouter'); // (optional) the subdir AltoRouter lives in

// mapping routes

$router->map('GET|POST','/', 'home#index', 'home');

$router->map('GET','/users', array('c' => 'UserController', 'a' => 'ListAction'));

$router->map('GET','/users/[i:id]', 'users#show', 'users_show');

$router->map('POST','/users/[i:id]/[delete|update:action]', 'usersController#doAction', 'users_do');

#2楼

$request = new \Zend\Http\PhpEnvironment\Request();

$httpMethod = $request->getMethod();

这样,您还可以在zend framework 2中实现。 谢谢。

#3楼

可以使用以下代码段来检测HTTP方法或所谓的REQUEST METHOD 。

$method = $_SERVER['REQUEST_METHOD']

if ($method == 'POST') {

// Method is POST

} elseif ($method == 'GET') {

// Method is GET

} elseif ($method == 'PUT') {

// Method is PUT

} elseif ($method == 'DELETE') {

// Method is DELETE

} else {

// Method unknown

}

如果您更喜欢if-else语句,也可以使用switch来实现。

如果html表单中需要除GET或POST之外的方法,则通常可以使用表单中的隐藏字段来解决此问题。

有关HTTP方法的更多信息,我想参考以下StackOverflow问题:

#4楼

您可以获取任何查询字符串数据,例如www.example.com?id=2&name=r

您必须使用$_GET['id']或$_REQUEST['id']获取数据。

发布数据意味着您必须使用$_POST或$_REQUEST类的

#5楼

您可以使用getenv函数,而不必使用$_SERVER变量:

getenv('REQUEST_METHOD');

更多信息:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值