PHP路由

原创 2015年07月09日 21:22:31

打造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));
?> 


相关文章推荐

PHP 使用CURL库IP欺骗,隐藏真实客户端IP,只有通过代理服务器或者路由底层tcp/ip来实现

p><?phpbr>br>error_reporting(0);br>br>function curl_string ($url,$user_agent,$proxy){br>$ch = cu...

PHP实现一个简单url路由功能.doc

  • 2013年12月12日 20:10
  • 82KB
  • 下载

CodeIgniter框架源码笔记(6)——支持友好的URI地址:路由类Router.php

Router类:将URI映射到对应的控制器及方法 Router类大量代码处理的是自定义路由,该类要支撑以下几个功能点: 1、自定义路由规则 在 application/config/routes.ph...
  • soonfly
  • soonfly
  • 2016年07月26日 11:58
  • 1744

ci 隐藏 index.php 设置路由

  • 2011年08月18日 23:23
  • 399B
  • 下载

PHP路由技术的原理与实践

0x00 路由实现原理用户通过指定的URL范式对后台进行访问,URL路由处理类进行处理后,转发到逻辑处理类,逻辑处理类将请求结果返回给用户。约定URL范式和规则约定一套自己喜欢的,对搜索引擎友好,对用...

CI框架源码完全分析之核心文件(路由)Router.php

CI的URI路由模式大家都清楚,它还支持强大的路由重定向:/** * Router * * @link http://www.phpddt.com */ class CI_Router { ...

codeigniter源代码分析之路由处理类 Router.php

Router 与 URI 类联系紧密 CodeIgniter.php 里面调用的是 Router 的
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP路由
举报原因:
原因补充:

(最多只允许输入30个字)