php 友好URL的实现(吐血推荐)


Posted in PHP onOctober 04, 2008

友好URL的实现(吐血推荐)
大家经常看到别的站的URL是这样的吧?
http://www.xxx.com/module/show/action/list/page/7
或者
http://xx.com/module/show/action/show/id/8.shtml 带扩展名的
或者
http://xx.com/module/show/action/show/id/8?word=ss&age=11
这样的吧
今天我就是公布下这种方法的实现,并独立出最简单的代码
函数如下,没封装成类,主要是没必要,用函数能方便些

<?php 
/** 
* 获得友好的URL访问 
* 
* @access public 
* @return array 
*/ 
function getQueryString(){ 
$_SGETS = explode("/",substr($_SERVER['PATH_INFO'],1)); 
$_SLEN = count($_SGETS); 
$_SGET = $_GET; 
for($i=0;$i<$_SLEN;$i+=2){ 
if(!empty($_SGETS[$i]) && !empty($_SGETS[$i+1])) $_SGET[$_SGETS[$i]]=$_SGETS[$i+1]; 
} 
$_SGET['m'] = !empty($_SGET['m']) && is_string($_SGET['m']) ? trim($_SGET['m']).'Action' : 'indexAction'; 
$_SGET['a'] = !empty($_SGET['a']) && is_string($_SGET['a']) ? trim($_SGET['a']) : 'run'; 
return $_SGET; 
} 
/** 
* 生成链接URL 
* 
* @access public 
* @param array $arr 
* @return string 
*/ 
function setUrl($arr){ 
global $Global; 
$queryString=''; 
if($Global['urlmode']==2){ 
foreach($arr as $k=> $v){ 
$queryString.=$k.'/'.$v.'/'; 
} 
} 
$queryString.=$Global['urlsuffix']; 
return $queryString; 
} 
?>

使用很简单
<?php 
$_GET= getQueryString(); 
?>

但是这样还不行,这样只能实现
http://www.xxx.com/index.php/module/show/action/list/page/7 这样的
中间多了个index.php 为此我们要把他去掉,只好重写
但是有些文件 又不希望这样,比如 样式 图片,那就放条件里
建立一个 .htaccess文件
RewriteEngine on 
RewriteCond $1 !^(index\.php|css|pics|themes|js|robots\.txt) 
RewriteRule ^(.*)$ index.php/$1 [L]

现在OK了,赶快去测试吧
<?php 
$_GET= getQueryString(); 
print_r($_GET); 
?>
PHP 相关文章推荐
求PHP数组最大值,最小值的代码
Oct 31 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
PHP模板引擎Smarty自定义变量调解器用法
Apr 11 PHP
php分页原理 分页代码 分页类制作教程
Sep 23 PHP
详解PHP归并排序的实现
Oct 18 PHP
php的laravel框架快速集成微信登录的方法
Dec 12 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
PHP中rename()函数的妙用讲解
Feb 28 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 PHP
PHP设计模式入门之状态模式原理与实现方法分析
Apr 26 PHP
PHP注释实例技巧
Oct 03 #PHP
使用eAccelerator加密PHP程序
Oct 03 #PHP
一些使用频率比较高的php函数
Oct 03 #PHP
PHP base64+gzinflate压缩编码和解码代码
Oct 03 #PHP
php下实现在指定目录搜索指定类型文件的函数
Oct 03 #PHP
PHP Header用于页面跳转要注意的几个问题总结
Oct 03 #PHP
smarty section简介与用法分析
Oct 03 #PHP
You might like
Oracle 常见问题解答
2006/10/09 PHP
让PHP支持页面回退的两种方法[转]
2007/02/14 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
PHP Reflection API详解
2015/05/12 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
php如何获取Http请求
2020/04/30 PHP
学习ExtJS 访问容器对象
2009/10/07 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
js document.write()使用介绍
2014/02/21 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
vue 使用eventBus实现同级组件的通讯
2018/03/02 Javascript
通过JS深度判断两个对象字段相同
2019/06/14 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
优秀少先队工作者事迹材料
2014/05/13 职场文书
本科毕业生自荐信
2014/06/02 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书
企业法律事务工作总结
2015/08/11 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书