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 相关文章推荐
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
PHP面向对象概念
Nov 06 PHP
php-cli简介(不会Shell语言一样用Shell)
Jun 03 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
php连接与操作PostgreSQL数据库的方法
Dec 25 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
PHP网站建设的流程与步骤分享
Sep 25 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
Jan 07 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
PHP用swoole+websocket和redis实现web一对一聊天
Nov 05 PHP
php获取是星期几的的一些常用姿势
Dec 15 PHP
TP5框架安全机制实例分析
Apr 05 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
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
twig里使用js变量的方法
2016/02/05 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
如何编写jquery插件
2017/03/29 jQuery
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
python分析作业提交情况
2017/11/22 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
详解Django的CSRF认证实现
2018/10/09 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
Java程序员面试题
2013/07/15 面试题
升职感谢信
2015/01/22 职场文书
检讨书怎么写
2015/01/23 职场文书
本科毕业论文答辩稿
2015/06/23 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js