php 友好URL的实现(吐血推荐)

 更新时间:2008年10月04日 15:53:48   作者:  
下面的代码主要是伪静态的实现,搜索引擎喜欢
友好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 URL验证正则表达式

    php URL验证正则表达式

    php URL验证正则表达式,需要的朋友可以参考下。
    2011-07-07
  • PHP浮点数精度问题汇总

    PHP浮点数精度问题汇总

    这篇文章主要介绍了PHP浮点数精度问题汇总,本文着重探讨PHP浮点数精度损失问题,用三个段落不同的方式讲解了这个问题的形成原因以及解决方法,需要的朋友可以参考下
    2015-05-05
  • PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例

    PHP中addslashes()和stripslashes()实现字符串转义和还原用法实例

    这篇文章主要介绍了PHP中addslashes()和stripslashes()实现字符串转义和还原用法,结合实例形式较为详细的分析了addslashes()和stripslashes()函数的功能,定义及具体使用技巧,并附带说明了addslashes()与addcslashes()函数的区别,需要的朋友可以参考下
    2016-01-01
  • PHP中使用foreach和引用导致程序BUG的问题介绍

    PHP中使用foreach和引用导致程序BUG的问题介绍

    PHP 引用有些类似 C 语言指针, 但一些重要的特性和 C 语言指针不一样, 如果不注意, 会导致程序 BUG. foreach 操作的是数组或对象的拷贝, 但 PHP5, 可以使用引用操作对象元素本身
    2012-09-09
  • php生成RSS订阅的方法

    php生成RSS订阅的方法

    这篇文章主要介绍了php生成RSS订阅的方法,较为详细的分析了一个RSS订阅类及其具体使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • PHP5.3与5.5废弃与过期函数整理汇总

    PHP5.3与5.5废弃与过期函数整理汇总

    这篇文章主要介绍了PHP5.3与5.5废弃与过期函数,需要的朋友可以参考下
    2014-07-07
  • php目录遍历函数opendir用法实例

    php目录遍历函数opendir用法实例

    这篇文章主要介绍了php目录遍历函数opendir用法,以实例形式详细分析了opendir原理与用法,是PHP进行目录操作的一个重要函数,需要的朋友可以参考下
    2014-11-11
  • php利用ffmpeg提取视频中音频与视频画面的方法详解

    php利用ffmpeg提取视频中音频与视频画面的方法详解

    想要提取视频中的音频信息,首选的技术是ffmpeg,ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件。这篇文章主要给大家介绍了PHP利用ffmpeg提取视频中音频与视频画面的相关资料,需要的朋友可以参考下。
    2017-06-06
  • PHP设计模式之结构模式的深入解析

    PHP设计模式之结构模式的深入解析

    本篇文章是对PHP设计模式中的结构模式进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php 读写json文件及修改json的方法

    php 读写json文件及修改json的方法

    下面小编就为大家分享一篇php 读写json文件及修改json的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03

最新评论