• phpcmsv9的分页使用到的函数,直接拿来用就可以了


    /**
     * URL路径解析,pages 函数的辅助函数
     *
     * @param $par 传入需要解析的变量 默认为,page={$page}
     * @param $url URL地址
     * @return URL
     */
    
    function url_par($par, $url = '') {
        if($url == '') $url = get_url();
        $pos = strpos($url, '?');
        if($pos === false) {
            $url .= '?'.$par;
        } else {
            $querystring = substr(strstr($url, '?'), 1);
            parse_str($querystring, $pars);
            $query_array = array();
            foreach($pars as $k=>$v) {
                if($k != 'page') $query_array[$k] = $v;
            }
            $querystring = http_build_query($query_array).'&'.$par;
            $url = substr($url, 0, $pos).'?'.$querystring;
        }
        return $url;
    }
    /**
     * 获取当前页面完整URL地址
     */
    function get_url() {
        $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
        $php_self = $_SERVER['PHP_SELF'] ? safe_replace($_SERVER['PHP_SELF']) : safe_replace($_SERVER['SCRIPT_NAME']);
        $path_info = isset($_SERVER['PATH_INFO']) ? safe_replace($_SERVER['PATH_INFO']) : '';
        $relate_url = isset($_SERVER['REQUEST_URI']) ? safe_replace($_SERVER['REQUEST_URI']) : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.safe_replace($_SERVER['QUERY_STRING']) : $path_info);
        return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
    }
    /**
     * 返回分页路径
     *
     * @param $urlrule 分页规则
     * @param $page 当前页
     * @param $array 需要传递的数组,用于增加额外的方法
     * @return 完整的URL路径
     */
    function pageurl($urlrule, $page, $array = array()) {
        if(strpos($urlrule, '~')) {
            $urlrules = explode('~', $urlrule);
            $urlrule = $page < 2 ? $urlrules[0] : $urlrules[1];
        }
        $findme = array('{$page}');
        $replaceme = array($page);
        if (is_array($array)) foreach ($array as $k=>$v) {
            $findme[] = '{$'.$k.'}';
            $replaceme[] = $v;
        }
        $url = str_replace($findme, $replaceme, $urlrule);
        $url = str_replace(array('http://','//','~'), array('~','/','http://'), $url);
        return $url;
    }
    /**
     * 分页函数
     *
     * @param $num 信息总数
     * @param $curr_page 当前分页
     * @param $perpage 每页显示数
     * @param $urlrule URL规则
     * @param $array 需要传递的数组,用于增加额外的方法
     * @return 分页
     */
    function pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) {
        if(defined('URLRULE') && $urlrule == '') {
            $urlrule = URLRULE;
            $array = $GLOBALS['URL_ARRAY'];
        } elseif($urlrule == '') {
            $urlrule = url_par('page={$page}');
        }
    
            $multipage = '';
        if($num > $perpage) {
            $page = $setpages+1;
            $offset = ceil($setpages/2-1);
            $pages = ceil($num / $perpage);
            $from = $curr_page - $offset;
            $to = $curr_page + $offset;
            $more = 0;
            if($page >= $pages) {
                $from = 2;
                $to = $pages-1;
            } else {
                if($from <= 1) {
                    $to = $page-1;
                    $from = 2;
                }  elseif($to >= $pages) {
                    $from = $pages-($page-2);
                    $to = $pages-1;
                }
                $more = 1;
            }
    //        $multipage .= '<a class="a1">'.$num.L('page_item').'</a>';
            if($curr_page>0) {
                $multipage .= ' <a href="'.pageurl($urlrule, $curr_page-1, $array).'" class="a1">上一页</a>';
                if($curr_page==1) {
                    $multipage .= ' <span class="cur">1</span>';
                } elseif($curr_page>6 && $more) {
                    $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a><i>...</i>';
                } else {
                    $multipage .= ' <a href="'.pageurl($urlrule, 1, $array).'">1</a>';
                }
            }
            for($i = $from; $i <= $to; $i++) {
                if($i != $curr_page) {
                    $multipage .= ' <a href="'.pageurl($urlrule, $i, $array).'">'.$i.'</a>';
                } else {
                    $multipage .= ' <span class="cur">'.$i.'</span>';
                }
            }
            if($curr_page<$pages) {
                if($curr_page<$pages-5 && $more) {
                    $multipage .= ' <i>...</i><a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">下一页</a>';
                } else {
                    $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">下一页</a>';
                }
            } elseif($curr_page==$pages) {
                $multipage .= ' <span class="cur">'.$pages.'</span> <a href="'.pageurl($urlrule, $curr_page, $array).'" class="a1">下一页</a>';
            } else {
                $multipage .= ' <a href="'.pageurl($urlrule, $pages, $array).'">'.$pages.'</a> <a href="'.pageurl($urlrule, $curr_page+1, $array).'" class="a1">下一页</a>';
            }
        }
        return $multipage;
    }
    /**
     * 安全过滤函数
     *
     * @param $string
     * @return string
     */
    function safe_replace($string) {
        $string = str_replace('%20','',$string);
        $string = str_replace('%27','',$string);
        $string = str_replace('%2527','',$string);
        $string = str_replace('*','',$string);
        $string = str_replace('"','&quot;',$string);
        $string = str_replace("'",'',$string);
        $string = str_replace('"','',$string);
        $string = str_replace(';','',$string);
        $string = str_replace('<','&lt;',$string);
        $string = str_replace('>','&gt;',$string);
        $string = str_replace("{",'',$string);
        $string = str_replace('}','',$string);
        $string = str_replace('\','',$string);
        return $string;
    }
  • 相关阅读:
    cocoapods使用遇到的一些问题
    so
    UITextField的各种属性方法介绍
    <<第1章 初识JAVA>>
    《第16章 复习》
    《第17章 图书管理系统》
    《第15章 字符串》
    《第13章 猜拳游戏》
    《第14章 带参数的方法》
    《第12章 类的无参方法》
  • 原文地址:https://www.cnblogs.com/aoxueshou/p/7686867.html
Copyright © 2020-2023  润新知