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 09 PHP
php ss7.5的数据调用 (笔记)
Mar 08 PHP
Joomla下利用configuration.php存储简单数据
May 19 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
Jun 25 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
Apr 02 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
php的扩展写法总结
May 14 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
Aug 23 PHP
php数组和链表的区别总结
Sep 20 PHP
Laravel find in set排序实例
Oct 09 PHP
Laravel 框架返回状态拦截代码
Oct 18 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
用C/C++扩展你的PHP 为你的php增加功能
2012/09/06 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
PHP类的特性实例分析
2016/09/28 PHP
javascript web页面刷新的方法收集
2009/07/02 Javascript
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
jquery的选择器的使用技巧之如何选择input框
2013/09/22 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
Vue Render函数创建DOM节点代码实例
2020/07/08 Javascript
解决vue路由name同名,路由重复的问题
2020/08/05 Javascript
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
浅谈python锁与死锁问题
2020/08/14 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
用python计算文件的MD5值
2020/12/23 Python
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
2014/05/07 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
家长会邀请书
2014/01/25 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
数学教师求职信范文
2015/03/20 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
幼儿园托班开学寄语(2016春季)
2015/12/03 职场文书