- java,python服务器基本都自带的有路由,phph里面像thinkphp之类的框架也有,但是有的时候我们只是想通过某个单独的php实现一个简单的api处理/api/user/getinfo?username=这种请求,又懒得加一个框架,可以直接使用我的代码
- 先将整个目录的请求重定向到指定的php,我使用的apache,就写.htaccess喽,如果用nginx可以搜一下相应的伪静态的写法
- 把/api/v2/改成自己的php文件前面的目录,index.php改成php的文件名
RewriteEngine On
RewriteBase /api/v2/
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^(.*)$ index.php [L]
<?php
$url_parts = parse_url($_SERVER['REQUEST_URI']);
$path = $url_parts['path'];
switch ($path) {
case "/api/v2/user/login":
echo 1;
exit;//记得每次触发后退出php,不然可能会误入其它的处理区域导致返回参数异常
break;
}
?>
- 有时也可以使用正则来处理一些路径里面的参数,比如提取/article/delete/33的33参数,只需要在switch前面对每一种情况加上正则即可
<?php
$url_parts = parse_url($_SERVER['REQUEST_URI']);
$path = $url_parts['path'];
//echo $path;
$pattern = '/\/article\/delete\/(\d+)/';
// 进行匹配
if (preg_match($pattern, $path, $matches)) {
$id = $matches[1];
echo $id;
//其它处理
exit;//记得每次触发后退出php,不然可能会误入其它的处理区域导致返回参数异常
}
switch ($path) {
case "/api/v2/user/login":
echo 1;
exit;//记得每次触发后退出php,不然可能会误入其它的处理区域导致返回参数异常
break;
}
?>