我为人人,人人为我!帮助    偶元赚取方式
发新话题
打印

[web开发] [PHP]新写的分页函数

本主题由 leifeng 于 2008-3-7 12:08 移动

[PHP]新写的分页函数

详细见附件中. 这里代码格式都是乱的......直接运行即可
复制内容到剪贴板
代码:
<style>.page { width:auto;height:25px;line-height:25px; text-align:center}.page a { width:25px; padding:0px 0px 0px 0px; float:left; font-size:14px;text-decoration:none;}.page a:hover { background-color:#eeeeee; color:#0000ff; text-decoration:underline;}.page a.now:hover { background-color:#ffffff; text-decoration:none;}.page a.now { color:#ff0000}</style><?php/** * @abstract 分页程序 * @copyright Copyright (c) 2007 * @author 张首华 0304681@126.com * @version $Id: page.func.php 2007-11-09 */function page($totalnum, $perpage = 10){        /**         * @param $totalnum 记录总数         * @param $perpage 每页记录数         * @param $pagestr 分页url的变量值         * @param $linknum 每页显示分页链接数量         * @param $before 当前页前的页数         * @param $behind 当前页后的页数         * @param $action 分析动作得到包含文件         * @param $linkstr 链接的字符串         * @param $totalpage 总页数         * @param $first 第一页         * @param $last 最后一页         * @param $pre 前一页         * @param $next 下一页         */        $pagestr = 'page';        $linknum = 10;        $before = 4;        $behind = 5;        $action = $linkstr = '';        /**         * @abstract 循环分解$_GET变量         */        if($totalnum < $perpage){                return ;        }        foreach($_REQUEST as $key => $val){                if($key == $pagestr){                        $nowpage = $val;                        $prepage = $val - 1;                        $nextpage = $val + 1;                }else{                        $action .= $key."=".$val."&";                }        }        $thisname = explode("/", $_SERVER['SCRIPT_NAME']);        $filename = $thisname[count($thisname)-1];        if($action){                $action .= $pagestr."=";                $filename .= "?";        }else{                $action .= $pagestr."=";                $filename .= "?";        }        $nowpage = empty($nowpage) ? 1 : $nowpage;        $totalpage = ceil($totalnum / $perpage);        /**         * @abstract 上一页下一页的页码         */        if($nowpage <= 1){                $prepage = 1;                $nextpage = $totalpage >=2 ? 2 : 1;        }        if($nowpage >= $totalpage){                $nextpage = $totalpage;                $prepage = $totalpage <= 2 ? 1 : $totalpage - 1;        }        /**         * @abstract 本次分页开始和结束的页码         */        if($totalpage <= $linknum){                $begin = 1;                $end = $totalpage;        }elseif($totalpage > $linknum){                if($nowpage + $behind <= $totalpage){                        $begin = $nowpage - $before > 0 ? $nowpage - $before : 1;                        $end = $begin + $linknum - 1;                }else{                        $begin = $totalpage - $linknum + 1;                        $end = $totalpage;                }        }        /**         * @abstract 循环输出页码         */        for($i=$begin; $i<=$end; $i++){                if($nowpage == $i){                        $linkstr .= "<a class='now'>".$i."</a>";                }else{                        $linkstr .= "<a href='".$filename.$action.$i."'>".$i."</a>";                }        }        $first = $filename.$action."1";        $last = $filename.$action.$totalpage;        $pre = $filename.$action.$prepage;        $next = $filename.$action.$nextpage;        $page['link'] =  "<span class='page'><a href='".$first."'>&lt;&lt;</a><a href='".$pre."'>&lt;</a>".$linkstr."<a href='".$next."'>&gt;</a><a href='".$last."'>&gt;&gt;</a></span>";        $page['limit'] = "limit ".$perpage*($nowpage-1).", ".$perpage;        return $page;}$page = page(100, 20);echo $page['link'];?>
附件: 您所在的用户组无法下载或查看附件
什么是优秀的程序员呢

TOP

弄不懂

TOP

好像显示的有点乱

好像显示的有点乱

TOP

太乱了点吧

TOP

TOP

不错的,我最近写了个php+xml的东东,不过没自定义函数 ,直接弄的,呵呵

TOP

谢谢楼主分享·

TOP

用一用看好不好

TOP

发新话题