angeljyt
中级会员
 
UID 72645
精华
0
积分 428
帖子 394
金钱 428 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-5-1
状态 离线
|
新手写的google样式分页
重新写了下分页, 使用google样式, 可以支持html静态化分页. 可以支持模板
固定每页显示20个页号, 如果超过3位数的,则只显示余数,使用title提示.以避免破坏页面布局
<?php
// 参数说明 // $prefix 前缀,不需要则填为空串 // $suffix 后缀,不需要则填为空串 // $count 记录总数 // $recordCount 每页显示的记录数 // $page 当前页号
function page($prefix, $suffix, $count, $recordCount, $page) { $pages = ceil($count/$recordCount);
if ($page < 1) { $page = 1; } if($page > $pages) { $page = $pages; }
$prev = $page - 1; if ($prev < 1) { $prev = 1; } $next = $page + 1; if ($next > $pages) { $next = $pages; }
$result = '<div class=page>'; $result .= '<a href='.$prefix.$prev.$suffix.' title="上一页"> 上一页 </a>';
if ($page < 11) { $count = 10+$page-1; for ($i=1; $i <= $count; $i++) { if ($i != $page) { $result .= '<a href='.$prefix.$i.$suffix.' title="第'.$i.'页"> '.$i.' </a>'; } else { $result .= '<a> '.$page.' </a>'; } } } else { $p = $page - 10; for ($i = 0; $i < 20; $i++) { $tmp = $p+$i; if ($tmp > $pages) { break; } if ($i != 10) { //下面几行过滤3位以上的数为只显示余数,如果余数为0则保留原数 //真正的页号使用title进行提示 $num = $tmp; if ( $num > 100 ) { $num = $num % 100; if ($num == 0) { //保留尾数为0 $num = $tmp; } } //如果不需要过滤的话,去了上面几行,同时把下面这行的$num替换为$tmp $result .= '<a href='.$prefix.$tmp.$suffix.' title="第'.$tmp.'页"> '.$num.' </a>'; } else { $result .= '<a> '.$page.' </a>'; } } }
$result .= '<a href='.$prefix.$next.$suffix.' title="下一页"> 下一页 </a>'; $result .= '</div>'; return $result; } //演示动态页面分页 $p = $_GET['p']; $prefix1 = 'p.php?p='; //静态页面分页 $prefix = '/test/p'; $suffix = '.html';
echo page($prefix1, '', 3000, 20, $p); echo '<br>'; echo page($prefix, $suffix, 3000, 20, $p); ?> [ 本帖最后由 angeljyt 于 2007-6-15 07:50 PM 编辑 ]
|
|