通过使用
$_SERVER['REQUEST_METHOD']
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// The request is using the POST method
}
有关更多详细信息,请参阅$ _SERVER 变量的文档 。
PHP 中的 REST 可以非常简单地完成。创建http://example.com/test.php (概述如下)。用于 REST 调用,例如http://example.com/test.php/testing/123/hello 。这适用于 Apache 和 Lighttpd 开箱即用,不需要重写规则。
<?php
$method = $_SERVER['REQUEST_METHOD'];
$request = explode("/", substr(@$_SERVER['PATH_INFO'], 1));
switch ($method) {
case 'PUT':
do_something_with_put($request);
break;
case 'POST':
do_something_with_post($request);
break;
case 'GET':
do_something_with_get($request);
break;
default:
handle_error($request);
break;
}
可以使用以下代码片段来检测 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
以外的方法,则通常使用表单中的隐藏字段来解决此问题。
<!-- 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 问题: