• 技术文章 >后端开发 >php教程

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

    2016-06-01 12:24:04原创329
    友好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
    这样的吧
    今天我就是公布下这种方法的实现,并独立出最简单的代码
    函数如下,没封装成类,主要是没必要,用函数能方便些
    复制代码 代码如下:
    /**
    * 获得友好的URL访问
    *
    * @access public
    * @return array
    */
    function getQueryString(){
    $_SGETS = explode("//m.sbmmt.com/m/",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.'//m.sbmmt.com/m/'.$v.'//m.sbmmt.com/m/';
    }
    }
    $queryString.=$Global['urlsuffix'];
    return $queryString;
    }
    ?>

    使用很简单
    复制代码 代码如下:
    $_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了,赶快去测试吧
    复制代码 代码如下:
    $_GET= getQueryString();
    print_r($_GET);
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php URL
    上一篇:PHP控制网页过期时间的代码_PHP 下一篇:PHP在字符串中查找指定字符串并删除的代码_PHP
    PHP编程就业班

    相关文章推荐

    • 解说PHP框架 (1) 基本概念 • 用过WordPress,对WordPress插件熟习的前辈请进 • 逻辑或 题一个!解决方案 • 关于HTML登陆界面的有关问题。 • (转)PHP缓存的兑现

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网