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 相关文章推荐
如何分别全角和半角以避免乱码
Oct 09 PHP
资料注册后发信小技巧
Oct 09 PHP
我的论坛源代码(八)
Oct 09 PHP
PHP新手上路(十二)
Oct 09 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
百度地图API应用之获取用户的具体位置
Jun 10 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 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获取网站域名和地址的代码
2008/08/17 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
解析php5配置使用pdo
2013/07/03 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
对python 中class与变量的使用方法详解
2019/06/26 Python
使用python绘制温度变化雷达图
2019/10/18 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
求职自荐信范文格式
2013/11/29 职场文书
年度考核评语
2014/01/19 职场文书
小松树教学反思
2014/02/11 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
学生检讨书如何写
2014/10/30 职场文书
整改报告格式
2014/11/06 职场文书
工人先进事迹材料
2014/12/26 职场文书
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers
JavaScript实现音乐播放器
2022/08/14 Javascript