PHP路由

打造php路由器

1.url重写

apache服务器:

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

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



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

2.几个变量

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

<?php
echo$_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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值