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 相关文章推荐
Session的工作方式
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
在JavaScript中调用php程序
Mar 09 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
php+highchats生成动态统计图
May 21 PHP
PHP图像处理类库及演示分享
May 17 PHP
PHP生成plist数据的方法
Jun 16 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
php文件缓存方法总结
Mar 16 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
PHP实现文件上传与下载
Aug 28 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语法(1)
2006/10/09 PHP
PHP 程序员的调试技术小结
2009/11/15 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
php中error与exception的区别及应用
2014/07/28 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Python3爬虫全国地址信息
2019/01/05 Python
python3 实现调用串口功能
2019/12/26 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
Shell如何接收变量输入
2016/08/06 面试题
日语专业个人的求职信
2013/12/03 职场文书
2014年信访工作总结
2014/11/17 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
MYSQL如何查看进程和kill进程
2022/03/13 MySQL