PHP路由

来源:互联网 发布:银客网网络理财 编辑:程序博客网 时间:2024/05/19 23:57

打造php路由器

1.url重写

apache服务器:

目录下放置.htaccess文件,内容类似下面这样:

<ifmodulemod_rewrite.c>RewriteEngineOnRewriteRule^(.*)$ index.php?$1 [L]</ifmodule>



RewriteRule的语法:RewriteRule正则表达式 替换后的内容(这里用$1$2来获得正则匹配的内容)[L]的意义为,匹配改写后不再向下继续匹配(可以写多个Rule

2.几个变量

为了获得请求的字符串/*例如localhost/router/id/3router为路由目录,id/3为请求串*/,先来看看下面几个变量的值://index.php/opt/lampp/htdocs/router/

<?phpecho$_SERVER['REQUEST_URI'],$_SERVER['DOCUMENT_ROOT'],__FILE__;?>


得到结果:

/router/id/3/opt/lampp/htdocs /opt/lampp/htdocs/router/index.php//地址为localhost/router/id/3

那么我们需要的/id/3需要去掉的就是$_SERVER['REQUEST_URI']里面的/router

3.字符串处理

<?php//echo$_SERVER['REQUEST_URI'],$_SERVER['DOCUMENT_ROOT'],__FILE__;preg_match('/(.*)\/.*\.php$/',__FILE__,$dir);$remove=str_replace($_SERVER['DOCUMENT_ROOT'],'',$dir[1]);$query=str_replace($remove,'',$_SERVER['REQUEST_URI']);print_r($query);?>


这样我们就得到了结果:

/id/3

4.参数分割

使用explode函数分割出各参数,这样你就可以继续解析到页面或者View

<?php//echo$_SERVER['REQUEST_URI'],$_SERVER['DOCUMENT_ROOT'],__FILE__;preg_match('/(.*)\/.*\.php$/',__FILE__,$dir);$remove=str_replace($_SERVER['DOCUMENT_ROOT'],'',$dir[1]);$query=str_replace($remove,'',$_SERVER['REQUEST_URI']);print_r(explode("/",$query));?> 


0 0