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代码简化
Feb 08 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Jun 12 PHP
php实现过滤表单提交中html标签的方法
Oct 17 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
PHP文件上传判断file是否己选择上传文件的方法
Nov 10 PHP
PHP弹出对话框技巧详细解读
Sep 26 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
Mar 31 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 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
一个目录遍历函数
2006/10/09 PHP
php数组编码转换示例详解
2014/03/11 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
2019/10/08 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
关于使用js算总价的问题
2017/06/23 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
2018/06/29 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
Python中的localtime()方法使用详解
2015/05/22 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
Python中偏函数用法示例
2018/06/07 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
Python实现名片管理系统
2020/02/14 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
2020/09/03 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
停课通知书
2015/04/24 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
python用海龟绘图写贪吃蛇游戏
2021/06/18 Python
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL
pandas中对文本类型数据的处理小结
2021/11/01 Python