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显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
php/js获取客户端mac地址的实现代码
Jul 08 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
php操作redis缓存方法分享
Jun 03 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
PHP创建/删除/复制文件夹、文件
May 03 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
PHP7常量数组用法分析
Sep 26 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
CakePHP框架Model关联对象用法分析
Aug 04 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无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
WIFI万能钥匙密码查询接口实例
2015/09/28 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
JS创建类和对象的两种不同方式
2014/08/08 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
angular中ui calendar的一些使用心得(推荐)
2017/11/03 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
2017/09/18 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
Python: glob匹配文件的操作
2020/12/11 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
岗位竞聘演讲稿
2014/01/10 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
行政人事专员岗位职责
2014/03/05 职场文书
股东出资证明书范例
2014/10/04 职场文书
2015年小学财务工作总结
2015/07/20 职场文书
小学语文继续教育研修日志
2015/11/13 职场文书