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的路由分配实现

对于由原生PHP写成的独立PHP框架,利用单一入口文件实现路径的访问。这时我们会遇到的首要问题是:文件的相互包含,其次就是路由分配。当我们不利用成熟的PHP框架进行web开发时,我们就会发现上述两个问...
  • helencoder
  • helencoder
  • 2016年07月29日 16:07
  • 8064

PHP搭建自己的web框架-路由

路由指URL路由,通过解析URL参数找到执行的(控制器的)方法。 通过URL,能找到目标类和目标方法,通常使用pathinfo或参数。比如: pathinfo :http://...
  • rariki
  • rariki
  • 2016年01月03日 14:12
  • 2795

php的路由规则

php里的路由的意思是地址转发,那么可以在生成URL的函数里传入各个参数生成一个新的的地址(而这个地址也就是伪静态地址) 先说下我的大体思路: 第一、服务器上apache或者nginx把伪静...
  • liaozhongping
  • liaozhongping
  • 2015年09月20日 00:38
  • 1742

php url路由入门实例

一、什么是php的路由机制 1、路由机制就是把某一个特定形式的URL结构中提炼出来系统对应的参数。举个例子,如:http://main.test.com/article/1  其中:/article...
  • zll105847174
  • zll105847174
  • 2016年11月23日 11:28
  • 3354

PHP路由模式Path_Info模式

php /*  * 小黄牛PHP博客 - 基于单一入口PHP框架Path_Info模式路由功能实现  * 作者:冯俊豪  * 什么是PHP - Path_Info模式路由?请看...
  • jimmy0021
  • jimmy0021
  • 2016年05月30日 16:40
  • 650

PHP简单实现MVC框架路由功能模式

说到使用PHP进行网站开发,自然离不开各种PHP的开发框架,开发框架为我们提供了灵活的开发方式,MVC层分离,业务解耦等等,让我们的开发更为快捷方便。但是很多人只是会使用框架,却从来不去了解框架的内部...
  • Zhihua_W
  • Zhihua_W
  • 2016年11月15日 09:11
  • 4486

简单实现PHP路由和类自动加载

项目目录如下 入口文件index.php 
  • well1219
  • well1219
  • 2017年05月27日 16:38
  • 535

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

现在写一个php例子,假设我的ip为192.168.0.33,我加了一层名为router的路径,之后跟随的是 “/模块名/方法名/参数1的key/参数1的value/….” 类似这样的地址: 19...
  • qq_23024699
  • qq_23024699
  • 2015年07月16日 17:08
  • 464

php写的一个简单路由控制类

最近写一个项目后台用到php,我对php了解不深,
  • cql342624757
  • cql342624757
  • 2014年04月30日 23:32
  • 2052

MVC框架-路由分发总结

总结 MVC框架中,各中路由机制的实现
  • Zuocheng_Liu
  • Zuocheng_Liu
  • 2015年04月16日 21:38
  • 3487
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP路由
举报原因:
原因补充:

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