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中static静态变量的使用方法详解
Jun 04 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
Jun 18 PHP
屏蔽PHP默认设置中的Notice警告的方法
May 20 PHP
php parse_str() 函数的定义和用法
May 23 PHP
PHP中Array相关函数简介
Jul 03 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
Oct 31 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP 获取指定地区的天气实例代码
Feb 08 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
tp5框架前台无限极导航菜单类实现方法分析
Mar 29 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 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
学习discuz php 引入文件的方法DISCUZ_ROOT
2009/06/21 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
浅析php header 跳转
2013/06/17 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
使用jquery hover事件实现表格的隔行换色功能示例
2013/09/03 Javascript
jQuery网页右侧广告跟随滚动代码分享
2020/04/20 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
jquery计算出left和top,让一个div水平垂直居中的简单实例
2016/07/13 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
Node做中转服务器转发接口
2017/10/18 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
JS实现字符串去重及数组去重的方法示例
2018/04/21 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
Python 内置函数complex详解
2016/10/23 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
中餐厅经理岗位职责
2014/04/11 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers
Python使用openpyxl模块处理Excel文件
2022/06/05 Python