php带省略号的分页

来源:互联网 发布:linux二进制文件反编译 编辑:程序博客网 时间:2024/09/21 09:00
<?php/** * php分页类,支持动态静态url */class Pager {public $url;private $maxpageno;private $pageno;private $suffix = ''; //静态文件后缀/** *  * @param int $total 总数 * @param int $pagesize 每页数 * @param string $url * @param int $maxpageno 最多页码数 ,包括省略不包括首页上页等,>=7 */function __construct($total, $pagesize, $url, $maxpageno = 7) {$this->pageno = ceil($total / $pagesize);$this->url = $url;$this->maxpageno = $maxpageno < 7 ? 7 : $maxpageno;}function pagelist($curpage = 1, $curclass = 'in') {if ($pos = strrpos($this->url, '.')) {$this->suffix = substr($this->url, $pos);$this->url = substr($this->url, 0, $pos);}//首页上页下页末页$index_url = $pre_url = $next_url = $end_url = 'javascript:void(0)';if ($curpage > 1) {$index_url = "{$this->url}1{$this->suffix}";$pre_url = $this->url . ($curpage - 1) . $this->suffix;}if ($curpage < $this->pageno) {$end_url = "{$this->url}{$this->pageno}{$this->suffix}";$next_url = $this->url . ($curpage + 1) . $this->suffix;}//省略if ($this->pageno > $this->maxpageno) {$half = floor(($this->maxpageno - 4) / 2);$half_start = $curpage - $half + 1;if ($this->maxpageno % 2 !== 0) --$half_start;$half_end = $curpage + $half;}if (($this->pageno - $curpage) < ($this->maxpageno - 3)) {$half_start = $this->pageno - $this->maxpageno + 3;unset($half_end);}if ($curpage <= ($this->maxpageno - 3)) {$half_end = $this->maxpageno - 2;unset($half_start);}$page = $this->getpage($index_url, ' class="index"', '首页') . $this->getpage($pre_url, ' class="pre"', '上一页');for($i = 1; $i <= $this->pageno; $i++) {if (isset($half_start) && $i < $half_start && $i > 1) {if ($i == 2) $page .= $this->getpage('javascript:void(0)', ' class="pageinfo"', '...');continue;}if (isset($half_end) && $i > $half_end && $i < $this->pageno) {if ($i == ($half_end + 1)) $page .= $this->getpage('javascript:void(0)', ' class="pageinfo"', '...');continue;}if ($i == $curpage) {$in = " class='{$curclass}'";$url = 'javascript:void(0)';} else {$in = '';$url = $this->url . $i . $this->suffix;}$page .= $this->getpage($url, $in, $i);}$page .= $this->getpage($next_url, ' class="pre"', '下一页') . $this->getpage($end_url, ' class="index"', '末页');return $page;}private function getpage($url, $class, $i) {return "<li{$class}><a href='{$url}'>{$i}</a></li>";}}$curpage = isset($_GET['page']) ? $_GET['page'] : 1;$page = new Pager(35, 2, '?page=');?><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><link rel="stylesheet" type="text/css" href="css.css" /></head><body><p>动态分页:</p><div class="pagelist"><?=$page->pagelist($curpage)?></div><p>静态分页,看url:</p><div class="pagelist"><?php$page->url = '/html/news/list_.html';echo $page->pagelist($curpage);?></div></body></html>


css:

ul,li,p{list-style:none;margin:0;padding:0}a{text-decoration:none;}/*分页*/.pagelist,p{width: 600px;margin: 0 auto;height: 25px;padding-top: 10px;}.pagelist li{float: left;}.pagelist a{display: block;width: 22px;height: 19px;line-height:20px;border: 1px solid #e3e3e3;background: url(list.gif) repeat-x;text-align: center;color: #676765;font-size: 12px;margin-left: 5px;}.pagelist li.in a{background: url(list_in.gif) repeat-x;border-color: #b5936d;color: #fff}.pagelist li.index a{width: 40px;}/*首页*/.pagelist li.pre a{width: 55px;}/*上一页*/.pagelist li.pageno a{width: 35px;}/*省略*/.pagelist .pageinfo{font-size: 12px;}p{font:14px/20px 'Microsoft Yahei';}

图片:






0 0
原创粉丝点击