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 相关文章推荐
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
php调用C代码的实现方法
Mar 11 PHP
php+js实现异步图片上传实例分享
Jun 02 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
PHP怎样用正则抓取页面中的网址
Aug 09 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 PHP
phpStorm2020 注册码
Sep 17 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
你不知道的文件上传漏洞php代码分析
2016/09/29 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
JS实现前端动态分页码代码实例
2020/06/02 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
Vue SPA 首屏优化方案
2021/02/26 Vue.js
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python中文乱码的解决方法
2013/11/04 Python
Python的Flask框架中Flask-Admin库的简单入门指引
2015/04/07 Python
python实现八大排序算法(1)
2017/09/14 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
对Python多线程读写文件加锁的实例详解
2019/01/14 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
python3 logging日志封装实例
2020/04/08 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
AJAX的优缺点都有什么
2015/08/18 面试题
中职应届生会计求职信
2013/10/23 职场文书
服务中心夜班服务员岗位职责
2013/11/27 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
nginx配置ssl实现https的方法示例
2021/03/31 Servers
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL