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);
?>

相关文章

  • 汇总PHPmailer群发Gmail的常见问题

    汇总PHPmailer群发Gmail的常见问题

    这篇文章主要汇总了PHPmailer群发Gmail的常见问题,整理了一个phpmailer发送gmail邮件实例,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 遭遇php的in_array低性能问题

    遭遇php的in_array低性能问题

    PHP的性能一直在提高。然而,若是用的不恰当,或是一个不留神,还是可能会踩到PHP内部实现方面的坑的。我在前几天的一个性能问题上就碰到了
    2013-09-09
  • PHP实现文件下载【实例分享】

    PHP实现文件下载【实例分享】

    本篇文章主要介绍了PHP实现文件下载的示例代码。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • php代码收集表单内容并写入文件的代码

    php代码收集表单内容并写入文件的代码

    前两天,一朋友让我帮他写一个收集表单内容并写入文件的简单PHP代码,由于最近工作忙,也没有时间来写,今天终于抽出点时间来完成了这个任务,下面就把相关的代码开源出来,供大家参考
    2012-01-01
  • fleaphp下不确定的多条件查询的巧妙解决方法

    fleaphp下不确定的多条件查询的巧妙解决方法

    在我们不确定多少条件限制的情况下,用下面的方法即可巧妙的解决
    2008-09-09
  • PHP中的命名空间相关概念浅析

    PHP中的命名空间相关概念浅析

    这篇文章主要介绍了PHP中的命名空间相关概念浅析,从广义上来说,命名空间是一种封装事物的方法,在很多地方都可以见到这种抽象概念,需要的朋友可以参考下
    2015-01-01
  • PHP缓存技术的使用说明

    PHP缓存技术的使用说明

    PHP缓存技术的应用时相当普遍的,也许有些人还对这项技术不太了解,我们现在就为大家详细的介绍一下PHP缓存技术的相关应用技巧。
    2011-08-08
  • php 二维数组时间排序实现代码

    php 二维数组时间排序实现代码

    这篇文章主要介绍了php 二维数组时间排序实现代码,需要的朋友可以参考下
    2016-11-11
  • PHP获取photoshop写入图片文字信息的方法

    PHP获取photoshop写入图片文字信息的方法

    这篇文章主要介绍了PHP获取photoshop写入图片文字信息的方法,涉及php操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP 数据库 常见问题小结

    PHP 数据库 常见问题小结

    揭露 PHP 应用程序中出现的五个常见数据库问题 —— 包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码 —— 以及它们的解决方案。
    2009-06-06

最新评论