首页 » SEO优化 » 分页选中php技巧_一款供PHP初学者进修的分页类库

分页选中php技巧_一款供PHP初学者进修的分页类库

访客 2024-12-15 0

扫一扫用手机浏览

文章目录 [+]

各位朋友大家好!

本日给大家带来的是一款 供PHP初学者学习的分页类库

分页选中php技巧_一款供PHP初学者进修的分页类库

分页显示模板,可用变量参数。
当前选中的分页链接模板,未选中的分页链接模板。
显示文本设置,设置分页模板, 设置选等分页模板,设置未选等分页模板。

分页选中php技巧_一款供PHP初学者进修的分页类库
(图片来自网络侵删)

由于源码比较长,想要文件版源码的可以评论或者私聊

废话不多说,上源码!

<?php

/

To change this template, choose Tools | Templates

and open the template in the editor.

/

/

分页类

利用办法:

$page = new Page();

$page->init(1000, 20);

$page->setNotActiveTemplate('<span> {a} </span>');

$page->setActiveTemplate('{a}');

echo $page->show();

/

class Page {

/

总条数

/

private $total;

/

每页大小

/

private $pageSize;

/

总页数

/

private $pageNum;

/

当前页

/

private $page;

/

地址

/

private $uri;

/

分页变量

/

private $pageParam;

/

LIMIT XX,XX

/

private $limit;

/

数字分页显示

/

private $listnum = 8;

/

分页显示模板

可用变量参数

{total} 总数据条数

{pagesize} 每页显示条数

{start} 本页开始条数

{end} 本页结束条数

{pagenum} 共有多少页

{frist} 首页

{pre} 上一页

{next} 下一页

{last} 尾页

{list} 数字分页

{goto} 跳转按钮

/

private $template = '<div><span>共有{total}条数据</span><span>每页显示{pagesize}条数据</span>,<span>本页{start}-{end}条数据</span><span>共有{pagenum}页</span><ul>{frist}{pre}{list}{next}{last}{goto}</ul></div>';

/

当前选中的分页链接模板

/

private $activeTemplate = '<li class=\"大众active\"大众><a href=\"大众javascript:;\公众>{text}</a></li>';

/

未选中的分页链接模板

/

private $notActiveTemplate = '<li><a href=\"大众{url}\公众>{text}</a></li>';

/

显示文本设置

/

private $config = array('frist' => '首页', 'pre' => '上一页', 'next' => '下一页', 'last' => '尾页');

/

初始化

@param type $total 总条数

@param type $pageSize 每页大小

@param type $param url附加参数

@param type $pageParam 分页变量

/

public function init($total, $pageSize, $param = '', $pageParam = 'page') {

$this->total = intval($total);

$this->pageSize = intval($pageSize);

$this->pageParam = $pageParam;

$this->uri = $this->geturi($param);

$this->pageNum = ceil($this->total / $this->pageSize);

$this->page = $this->setPage();

$this->limit = $this->setlimit();

}

/

设置分页模板

@param type $template 模板配置

/

public function setTemplate($template) {

$this->template = $template;

}

/

设置选等分页模板

@param type $activeTemplate 模板配置

/

public function setActiveTemplate($activeTemplate) {

$this->activeTemplate = $activeTemplate;

}

/

设置未选等分页模板

@param type $notActiveTemplate 模板配置

/

public function setNotActiveTemplate($notActiveTemplate) {

$this->notActiveTemplate = $notActiveTemplate;

}

/

返回分页

@return type

/

public function show() {

return str_ireplace(array(

'{total}',

'{pagesize}',

'{start}',

'{end}',

'{pagenum}',

'{frist}',

'{pre}',

'{next}',

'{last}',

'{list}',

'{goto}',

), array(

$this->total,

$this->setPageSize(),

$this->star(),

$this->end(),

$this->pageNum,

$this->frist(),

$this->prev(),

$this->next(),

$this->last(),

$this->pagelist(),

$this->gopage(),

), $this->template);

}

/

获取limit起始数

@return type

/

public function getOffset() {

return ($this->page - 1) $this->pageSize;

}

/

设置LIMIT

@return type

/

private function setlimit() {

return \"大众limit \公众 . ($this->page - 1) $this->pageSize . \"大众,{$this->pageSize}\"大众;

}

/

获取limit

@param type $args

@return type

/

public function __get($args) {

if ($args == \"大众limit\公众) {

return $this->limit;

} else {

return null;

}

}

/

初始化当前页

@return int

/

private function setPage() {

if (!empty($_GET[$this->pageParam])) {

if ($_GET[$this->pageParam] > 0) {

if ($_GET[$this->pageParam] > $this->pageNum)

return $this->pageNum;

else

return $_GET[$this->pageParam];

}

}

return 1;

}

/

初始化url

@param type $param

@return string

/

private function geturi($param) {

$url = $_SERVER['REQUEST_URI'] . (strpos($_SERVER['REQUEST_URI'], \公众?\公众) ? \公众\"大众 : \"大众?\"大众) . $param;

$parse = parse_url($url);

if (isset($parse[\"大众query\"大众])) {

parse_str($parse[\"大众query\公众], $params);

unset($params[\"大众page\"大众]);

$url = $parse[\公众path\公众] . \"大众?\"大众 . http_build_query($params);

return $url;

} else {

return $url;

}

}

/

本页开始条数

@return int

/

private function star() {

if ($this->total == 0) {

return 0;

} else {

return ($this->page - 1) $this->pageSize + 1;

}

}

/

本页结束条数

@return type

/

private function end() {

return min($this->page $this->pageSize, $this->total);

}

/

设置当前页大小

@return type

/

private function setPageSize() {

return $this->end() - $this->star() + 1;

}

/

首页

@return type

/

private function frist() {

$html = '';

if ($this->page == 1) {

$html .= $this->replace(\"大众{$this->uri}&page=1\"大众, $this->config['frist'], true);

} else {

$html .= $this->replace(\"大众{$this->uri}&page=1\"大众, $this->config['frist'], false);

}

return $html;

}

/

上一页

@return type

/

private function prev() {

$html = '';

if ($this->page > 1) {

$html .= $this->replace($this->uri.'&page='.($this->page - 1), $this->config['pre'], false);

} else {

$html .= $this->replace($this->uri.'&page='.($this->page - 1), $this->config['pre'], true);

}

return $html;

}

/

分页数字列表

@return type

/

private function pagelist() {

$linkpage = \公众\"大众;

$lastlist = floor($this->listnum / 2);

for ($i = $lastlist; $i >= 1; $i--) {

$page = $this->page - $i;

if ($page >= 1) {

$linkpage .= $this->replace(\公众{$this->uri}&page={$page}\"大众, $page, false);

} else {

continue;

}

}

$linkpage .= $this->replace(\"大众{$this->uri}&page={$this->page}\"大众, $this->page, true);

for ($i = 1; $i <= $lastlist; $i++) {

$page = $this->page + $i;

if ($page <= $this->pageNum) {

$linkpage .= $this->replace(\公众{$this->uri}&page={$page}\"大众, $page, false);

} else {

break;

}

}

return $linkpage;

}

/

下一页

@return type

/

private function next() {

$html = '';

if ($this->page < $this->pageNum) {

$html .= $this->replace($this->uri.'&page='.($this->page + 1), $this->config['next'], false);

} else {

$html .= $this->replace($this->uri.'&page='.($this->page + 1), $this->config['next'], true);

}

return $html;

}

/

末了一页

@return type

/

private function last() {

$html = '';

if ($this->page == $this->pageNum) {

$html .= $this->replace($this->uri.'&page='.($this->pageNum), $this->config['last'], true);

} else {

$html .= $this->replace($this->uri.'&page='.($this->pageNum), $this->config['last'], false);

}

return $html;

}

/

跳转按钮

@return string

/

private function gopage() {

$html = '';

$html.=' <input type=\公众text\"大众 value=\"大众' . $this->page . '\"大众 onkeydown=\"大众javascript:if(event.keyCode==13){var page=(this.value>' . $this->pageNum . ')?' . $this->pageNum . ':this.value;location=\'' . $this->uri . '&page=\'+page+\'\'}\"大众 style=\公众width:25px;\"大众/><input type=\公众button\"大众 onclick=\"大众javascript:var page=(this.previousSibling.value>' . $this->pageNum . ')?' . $this->pageNum . ':this.previousSibling.value;location=\'' . $this->uri . '&page=\'+page+\'\'\"大众 value=\公众GO\"大众/>';

return $html;

}

/

模板更换

@param type $replace 更换内容

@param type $result 条件

@return type

/

private function replace($url, $text, $result = true) {

$template = ($result ? $this->activeTemplate : $this->notActiveTemplate);

$html = str_replace('{url}', $url, $template);

$html = str_replace('{text}', $text, $html);

return $html;

}

}

标签:

相关文章

大数据分析在现代社会的应用与影响

随着互联网技术的飞速发展,大数据已成为推动社会进步的重要力量。大数据分析作为一门交叉学科,融合了统计学、计算机科学、信息科学等多个...

SEO优化 2024-12-17 阅读0 评论0

大数据倒流,未来数据经济的颠覆性变革

随着互联网的飞速发展,大数据已经成为各行各业的重要资源。近年来,大数据倒流现象逐渐兴起,它不仅改变了数据的使用方式,更对未来数据经...

SEO优化 2024-12-17 阅读0 评论0

大数据刘海,介绍互联网时代的隐私防线

随着互联网的快速发展,大数据时代已经来临。在这个时代,个人信息被广泛收集、分析和利用,而大数据刘海作为一种新型的隐私保护技术,逐渐...

SEO优化 2024-12-17 阅读0 评论0