我怎么能检测到哪个请求类型被使用(GET, POST, PUT或删除)在PHP?
当前回答
$request = new \Zend\Http\PhpEnvironment\Request();
$httpMethod = $request->getMethod();
通过这种方式,您也可以在zend框架2中实现。 谢谢。
其他回答
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;
}
您可以获得任何查询字符串数据,例如www.example.com?id=2&name=r
您必须使用$_GET['id']或$_REQUEST['id']获取数据。
Post数据意味着像form <form action= " method=' Post '>你必须使用$_POST或$_REQUEST。
通过使用
$_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;
}
?>
$request = new \Zend\Http\PhpEnvironment\Request();
$httpMethod = $request->getMethod();
通过这种方式,您也可以在zend框架2中实现。 谢谢。
推荐文章
- 在文本文件中创建或写入/追加
- 为什么PHP的json_encode函数转换UTF-8字符串为十六进制实体?
- 如何从一个查询插入多行使用雄辩/流利
- 在PHP单元测试执行期间,如何在CLI中输出?
- 在PHP中使用heredoc的优势是什么?
- PHP中的echo, print和print_r有什么区别?
- 什么是HTTP“主机”报头?
- 如何将XML转换成PHP数组?
- 如何将对象转换为数组?
- 从IP地址获取位置
- 哪个HTTP状态代码表示“尚未准备好,稍后再试”?
- 获取数组值的键名
- HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA is OK
- PHP -获取bool值,当为false时返回false
- 在foreach中通过引用传递