下面我们来看几行简单的示例代码:<?php
$uri = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));
$controller = $uri[1];
$method = $uri[2];
$param = $uri[3];
$object = new $controller(); //如果控制器在单独文件则前面加一行:require __DIR__.'/'.$controller.'.php';
echo call_user_func_array(array($object, $method), array($param)); //调用ligphp控制器里面的get方法并传参
class ligphp {
public function get($id) {
return '调用了' . __CLASS__ . '类的' . __FUNCTION__ . '函数,参数为' . $id;
}
}
?>
我测试的机器是apache作为web服务器,已经写好了.htaccess文件,下面几行,隐藏index.php的:
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.*)$ index.php?s=/$1 [QSA,PT,L]
然后我们在浏览器输入:http://192.168.1.8/ligphp/get/12345,结果会输出:调用了ligphp类的get函数,参数为12345
当然,这只是最简单的一个例子,并不是说路由就是这样的,只是以此例来帮助理解现在的各种框架路由实现。
打赏
微信扫一扫,打赏作者吧~