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中Session的概念
Oct 09 PHP
用PHP中的 == 运算符进行字符串比较
Nov 26 PHP
php email邮箱正则
Oct 08 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
php提交表单发送邮件的方法
Mar 20 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
Jan 27 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 PHP
PHP的重载使用魔术方法代码实例详解
Feb 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
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP对象实例化单例方法
2017/01/19 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
Node.js readline模块与util模块的使用
2018/03/01 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
python 提取文件的小程序
2009/07/29 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
Python写的一个简单监控系统
2015/06/19 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
详解python实现线程安全的单例模式
2018/03/05 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
python生成ppt的方法
2018/06/07 Python
Django REST framwork的权限验证实例
2020/04/02 Python
Python 连接 MySQL 的几种方法
2020/09/09 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
python 模块导入问题汇总
2021/02/01 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
校运会广播稿100字
2014/01/27 职场文书
学习自我鉴定
2014/02/01 职场文书
商业用房租赁协议书
2014/10/13 职场文书
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL