我怎么能检测到哪个请求类型被使用(GET, POST, PUT或删除)在PHP?
当前回答
可以使用下面的代码片段检测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语句,你也可以使用一个开关。
如果HTML表单中需要GET或POST以外的方法,则通常使用表单中的隐藏字段来解决这个问题。
<!-- DELETE method -->
<form action='' method='POST'>
<input type="hidden" name'_METHOD' value="DELETE">
</form>
<!-- PUT method -->
<form action='' method='POST'>
<input type="hidden" name'_METHOD' value="PUT">
</form>
关于HTTP方法的更多信息,我想参考下面的StackOverflow问题:
HTTP协议的PUT和DELETE及其在PHP中的使用
其他回答
通过使用
$_SERVER['REQUEST_METHOD']
例子
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// The request is using the POST method
}
要了解更多细节,请参阅$_SERVER变量的文档。
这是非常简单的使用$_SERVER['REQUEST_METHOD'];
例子:
<?php
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
case 'GET':
//Here Handle GET Request
break;
case 'POST':
//Here Handle POST Request
break;
case 'DELETE':
//Here Handle DELETE Request
break;
case 'PUT':
//Here Handle PUT Request
break;
}
?>
博士TL;
true的“原生源”是$_SERVER全局变量。请求方法 保存在“REQUEST_METHOD”键下。
检查$_SERVER数组
$ _SERVER(“REQUEST_METHOD”)
PHP方法
但是您可以使用许多变通方法来获得方法。像filter_input: filter_input(INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_ENCODED);
填词 或者使用外部库,比如:
Symfony \ HttpFoundation \ \组件请求 \ Zend \ \ PhpEnvironment \ Http请求
结论
但最简单的方法是使用:$_SERVER['REQUEST_METHOD']。
$request = new \Zend\Http\PhpEnvironment\Request();
$httpMethod = $request->getMethod();
通过这种方式,您也可以在zend框架2中实现。 谢谢。
您可以获得任何查询字符串数据,例如www.example.com?id=2&name=r
您必须使用$_GET['id']或$_REQUEST['id']获取数据。
Post数据意味着像form <form action= " method=' Post '>你必须使用$_POST或$_REQUEST。
推荐文章
- PHP中接口的意义是什么?
- 致命错误:未找到类“SoapClient”
- 我目前使用的是哪个版本的CodeIgniter ?
- 合并两个PHP对象的最佳方法是什么?
- 如何使HTTP请求在PHP和不等待响应
- PATCH和PUT请求的主要区别是什么?
- 发送附件与PHP邮件()?
- 如何获得当前的路线在Symfony 2?
- 我可以把我所有的http://链接都改成//吗?
- 用PHP删除字符串的前4个字符
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 一个函数的多个返回值
- 在PHP中使用foreach循环时查找数组的最后一个元素
- 检查数组是否为空
- PHP DOMDocument loadHTML没有正确编码UTF-8