实验室-PHP重构$_GET参数部分

2017-01-14 08:42:32来源:CSDN作者:qq_28629495人点击

第七城市

因为某项目中,用到分页函数。所以要重构url部分。
所以先自己试着去写了一下,
后来查询了一下php提供的相关函数。
下面你就可以看到同样的工作,不同的差距了。

这一种是自己写的:

//获取当前文件名部分    $script_name_url = $_SERVER['SCRIPT_NAME'];      $filename = basename($script_name_url);// page.php    //重构URL及参数部分    $reset_url = '';    $url = $_SERVER['REQUEST_URI'];// /review/php/day16_project_bbs/page.php?page=14&id=13    $url_array = explode('/',$url);  //Array    $url_argument = end($url_array);// page.php?page=14&id=13    $url_argument = parse_url($url_argument);// array(2) { ["path"]=> string(8) "page.php" ["query"]=> string(12) "id=13&page=1" }    //判断参数部分是否存在    if(isset($url_argument['query'])){        $query =$url_argument['query'];        if(strpos($query,$page) === false){            $reset_url = $filename.'?'.$query."&{$page}=";//page.php?id=1&onset=1&page=        }else{            // 情况1:page.php?page=1&id=13             // page参数在前            $pattern = "/{$page}=/d+&+/";            // 情况2:page.php?id=13&page=1            // page参数在后            $pattern2 = "/{$page}=/d+/";            if(preg_match($pattern,$query,$sub_url)){//匹配到page=1&                $sub_str_url = $sub_url[0];                $query = preg_replace($pattern,"",$query);                $query .= "&{$page}=";                $reset_url = $filename.'?'.$query;            }            if(preg_match($pattern2,$query)){//匹配到page=1                $query = preg_replace($pattern2,"{$page}=",$query);                $reset_url = $filename.'?'.$query;            }        }    }else{        $reset_url = $filename."?{$page}=";//page.php?page=    }

这一种是根据php提供的相关函数来写的:

<?php     // 重构url    $reset_url = '';//用于重构url的初始化变量    $url = $_SERVER['REQUEST_URI'];//     /review/php/day16_project_bbs/page.php?page=1&id=13    $url_arr = parse_url($url); //  Array    $url_path = $url_arr['path'];//    /review/php/day16_project_bbs/page.php    //重构$_GET值    if(!empty($url_arr['query'])){        $url_query = $url_arr['query'];//   page=1&id=13        parse_str($url_query,$query_arr);//array(2) { ["page"]=> string(1) "1" ["id"]=> string(2) "13" }        unset($query_arr[$page]);        // 判断$_GET是否还有其他值的存在        if(empty($query_arr)){            $reset_url = "{$url_path}?{$page}=";        }else{            $url_args = http_build_query($query_arr);            $reset_url = "{$url_path}?{$url_args}&{$page}=";        }    }else{        $reset_url = "{$url_path}?{$page}=";    } ?>
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台