专栏首页V站PHP分页处理
原创

PHP分页处理

V站笔记

**
* 获取当前url
* @return string
*/
function getUrl()
{
$url = ”;
$url .= $_SERVER[‘SERVER_PORT’] == 443 ? ‘https://’ : ‘http://’;
$url .= $_SERVER[‘HTTP_HOST’];
$url .= $_SERVER[‘REQUEST_URI’];
return $url;
}
/**
* 根据page生成url
* @param $page
* @param string $url
* @return string
*/
function pageUrl($page, $url = ”)
{
$url = empty($url) ? getUrl() : $url;
//查询url中是否存在?
$pos = strpos($url, ‘?’);
if($pos === false)
{
$url .= ‘?page=’ . $page;
}
else
{
$queryString = substr($url, $pos + 1);
//解析querystring为数组
parse_str($queryString, $queryArr);
if(isset($queryArr[‘page’]))
{
unset($queryArr[‘page’]);
}
$queryArr[‘page’] = $page;
//将queryArr重新拼接成queryString
$queryStr = http_build_query($queryArr);
$url = substr($url, 0, $pos) . ‘?’ . $queryStr;
}
return $url;
}
/**
* 分页显示
* @param int $total 数据总数
* @param int $currentPage 当前页
* @param int $pageSize 每页显示条数
* @param int $show 显示按钮数
* @return string
*/
function pages($total, $currentPage, $pageSize, $show = 6)
{
$pageStr = ”;
//仅当总数大于每页显示条数 才进行分页处理
if($total > $pageSize)
{
//总页数
$totalPage = ceil($total / $pageSize);//向上取整 获取总页数
//对当前页进行处理
$currentPage = $currentPage > $totalPage ? $totalPage : $currentPage;
//分页起始页
$from = max(1, ($currentPage – intval($show / 2)));
//分页结束页
$to = $from + $show – 1;
$pageStr .= ‘<div class=”page-nav”>’;
$pageStr .= ‘<ul>’;
//仅当 当前页大于1的时候 存在 首页和上一页按钮
if($currentPage > 1)
{
$pageStr .= “<li><a href='” . pageUrl(1) . “‘>首页</a></li>”;
$pageStr .= “<li><a href='” . pageUrl($currentPage – 1) . “‘>上一页</a></li>”;
}
//当结束页大于总页
if($to > $totalPage)
{
$to = $totalPage;
$from = max(1, $to – $show + 1);
}
if($from > 1)
{
$pageStr .= ‘<li>…</li>’;
}
for($i = $from; $i <= $to; $i++)
{
if($i != $currentPage)
{
$pageStr .= “<li><a href='” . pageUrl($i) . “‘>{$i}</a></li>”;
}
else
{
$pageStr .= “<li><span class=’curr-page’>{$i}</span></li>”;
}
}
if($to < $totalPage)
{
$pageStr .= ‘<li>…</li>’;
}
if($currentPage < $totalPage)
{
$pageStr .= “<li><a href='” . pageUrl($currentPage + 1) . “‘>下一页</a></li>”;
$pageStr .= “<li><a href='” . pageUrl($totalPage) . “‘>尾页</a></li>”;
}
$pageStr .= ‘</ul>’;
$pageStr .= ‘</div>’;
}
return $pageStr;
}

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP分页原理

    <?php $conn=@mysql_connect(“localhost”,”root”,”123456″) or die(“数据库连接失败”); $se...

    苦咖啡
  • 数据的分页处理

    当页面中要显示的内容过多需要分多页显示、或是数据量过大内存吃不消时,需要分页处理。 原理:每次从数据库中取出一定量的数据,通过jsp页面显示 实现: ①写一个类...

    欠扁的小篮子
  • 分库后如何处理分页?

    在数据量过大以后,通常都会进行分库操作,把一张表拆分到不同数据库中 例如 tb1 表被拆分到3个库中,分库1、分库2、分库3 现在想执行分页操作 SELECT ...

    dys
  • PHP-分页

    将上一讲的MySQLDB类拷贝到站点下,将测试代码删除,只留下类代码,文件名改为MySQLDB.class.php

    cwl_java
  • php分页

    用户1623964
  • JSP分页显示(前端处理)

    唔仄lo咚锵
  • SpringCloud+MyBatis分页处理(前后端分离)

    pageNum 和 pageSize 用于前端分页的参数,pageNum:表示页码第几页,pageSize:表示每页展示数据数量。

    刘文正
  • php开发_分页

    sql语句:select * from test_table limit ($page-1)*$pageSize,$pageSize;

    Hongten
  • php 分页相关

    $seq_num = 11;//显示11页 $listpage = array(); $curr_page = 2;//当前页 $pages = 30;//总页...

    joshua317

扫码关注云+社区

领取腾讯云代金券