+ -
当前位置:首页 → 问答吧 → 第一次写的分页函数....超级不理想-_-|||

第一次写的分页函数....超级不理想-_-|||

时间:2007-12-21

来源:互联网

添加中文字体...
复制PHP内容到剪贴板
PHP代码:

<?php
//==============================================
// PageFT 英文函数库 Beta
//
// 代码所有       PHPText.Net
// 代码作者       黄创钦,[email protected]
// 联系方式       QQ 233944397
// 本代码开源使用,可以随意修改传播,但请保留本版权
// 声明,谢谢合作!
//==============================================

//分页函数
function PageFT($DataMax, $Cols=10, $Rows=20, $Chinese=0, $ButtonArr=array("S","P","N","E"), $RowText=array("","")){
    
    //获取总页数
    $Row = ceil($DataMax/$Rows);
    
    //设置中文数字
    $CHS = array("零","一","二","三","四","五","六","七","八","九");
    $CHT = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
    
    if($Row>1){
        //总数
        $PageFT = "<span class='PageFT_DM'> ".$RowText[0].$DataMax." </span>";
        
        //地址参数处理
        if(!empty($_SERVER["QUERY_STRING"])){
            //获取地址参数
            $LinkStr = $_SERVER["QUERY_STRING"];
            
            //删除原有参数
            $LinkStr = preg_replace("/\?PageFT_SN=.*&?/i","",$LinkStr);
            $LinkStr = preg_replace("/&PageFT_SN=.*&?/i","",$LinkStr);
            
            //重设参数
            $LinkStr = $LinkStr."&PageFT_SN=";
        }else{
            $LinkStr = "PageFT_SN=";
        }
        
        //获取当前页
        $NowPage = (int)$_GET["PageFT_SN"];
        if(empty($NowPage)){ $NowPage = 1; }
        
        $PageFT .= "<span class='PageFT_OFF'><a href='?".$LinkStr."1'>".$ButtonArr[0]."</a></span>";
        
        //计算前三页
        $PageMin = $NowPage-$Cols;
        if($PageMin < 1){
            $PageMin = 1;
        }
        
        //计算后三页
        $PageMax = $NowPage+$Cols;
        if($PageMax > $Row){
            $PageMax = $Row;
        }
        
        //如果不是第一页则显示上一页
        if($NowPage!=1){
            $PageFT .= "<span class='PageFT_OFF'><a href='?".$LinkStr.($NowPage-1)."'>".$ButtonArr[1]."</a></span>";
        }
        
        //页数
        for($i = $PageMin;$i <= $PageMax;$i++){
            $si=$i;
            if(strtoupper($Chinese)=="CHS"){
                $si="";
                $i=(string)$i;
                for($j=0;$j<strlen($i);$j++){
                    $si.=$CHS[$i[$j]];
                }
            }
            if(strtoupper($Chinese)=="CHT"){
                $si="";
                $i=(string)$i;
                for($j=0;$j<strlen($i);$j++){
                    $si.=$CHT[$i[$j]];
                }
            }
            $i=(int)$i;
            if($i == $NowPage){
                $PageFT .= "<span class='PageFT_ON'>".$si."</span>";
            }else{
                $PageFT .= "<span class='PageFT_OFF'><a href='?".$LinkStr.$i."'>".$si."</a></span>";
            }
        }
        
        //如果不是最后一页则显示下一页
        if($NowPage!=$Row){
            $PageFT .= "<span class='PageFT_OFF'><a href='?".$LinkStr.($NowPage+1)."'>".$ButtonArr[2]."</a></span>";
        }
        
        //末页
        $PageFT .= "<span class='PageFT_OFF'><a href='?".$LinkStr.$Row."'>".$ButtonArr[3]."</a></span>";
        $PageFT .= "<span class='PageFT_NR'> ".$NowPage."/".$Row.$RowText[1]." </span>";
    }
    
    return $PageFT;
}
?>

[ 本帖最后由 MoHock 于 2007-12-21 16:25 编辑 ]

作者: MoHock   发布时间: 2007-12-21

加油

作者: 圆圈   发布时间: 2007-12-21

这么快放出来了,我的抽奖还没搞定呢。

作者: anyforever   发布时间: 2007-12-21

作者: MoHock   发布时间: 2007-12-21

分页的帖子论坛里有很多了,你可以搜索下看看。

作者: luzhou   发布时间: 2007-12-22