1, // 首页-尾页 0-关闭 1-开启 'back_next' => 1, // 上一页-下一页 0-关闭 1-开启 'total_num' => 1, // 是否显示总页数 0-关闭 1-开启 'page_num' => 1, // 翻页数 0-关闭 1-开启 'select' => 1 ); // 下拉列表选择 0-关闭 1-开启 private static $style_config = ''; /** * 分页-分页入口 * * @param int $count * 总共多少数据 * @param int $prepage * 每页显示多少页 * @param int $url * URL * @return string */ public static function pager($count, $prepage, $url, $page, $default_style = TRUE): string { $count = (int) $count; $prepage = (int) $prepage; $page_num = ceil($count / $prepage); // 总共多少页 $page = (int) $page; $page = ($page > $page_num) ? $page_num : ($page = ($page < 1) ? 1 : $page); $url = (strpos($url, '?') === false) ? $url . '?' : $url; return self::pager_html($page_num, $url, $page, $default_style); } /** * 分页-获取分页HTML显示 * * @param int $page_num * 页数 * @param string $url * URL * @param int $page * 当前页 * @return string */ private static function pager_html($page_num, $url, $page, $default_style) { list ($start, $end) = self::get_satrt_and_end($page, $page_num); list ($back, $next) = self::get_pager_next_back_html($url, $page, $page_num); list ($first, $last) = self::get_first_last_html($page_num, $url); if ($default_style == true) { $html = self::$style_config . "
"; } else { $html = "
"; } $html .= $back; $html .= $first; $html .= self::get_pager_num_html($start, $end, $url, $page); $html .= $last; $html .= $next; $html .= self::get_total_num_html($page_num); $html .= self::get_select_html($page_num, $url, $page); $html .= '
'; return $html; } /** * 分页-获取分页数字的列表 * * @param int $start * 开始数 * @param int $end * 结束数 * @param string $url * URL地址 * @param int $page * 当前页 * @return string */ private static function get_pager_num_html($start, $end, $url, $page) { if (self::$conf['page_num'] == 0) return ''; // 是否开启 $html = ''; for ($i = $start; $i <= $end; $i ++) { if ($i == $page) { $html .= "{$i}"; } else { $html .= "{$i}"; } } return $html; } /** * 分页-分页总页数显示 * * @param int $page_num * 页数 * @return string */ private static function get_total_num_html($page_num) { if (self::$conf['total_num'] == 0) return ''; // 是否开启 return "  共{$page_num}页"; } /** * 分页-分页首页和尾页显示 * * @param int $page_num * 页数 * @param string $url * URL地址 * @return string */ private static function get_first_last_html($page_num, $url) { if (self::$conf['first_last'] == 0) return array( '', '' ); // 是否开启 $first = "首页"; $last = "尾页"; return array( $first, $last ); } /** * 分页-获取分页上一页-下一页HTML * * @param string $url * URL地址 * @param int $page * 当前页 * @param int $page_num * 页数 * @return string */ private static function get_pager_next_back_html($url, $page, $page_num) { if (self::$conf['back_next'] == 0) return array( '', '' ); // 是否开启 $next_page = $page + 1; $next = ""; if ($page == $page_num) $next = ''; $back_page = $page - 1; $back = "上一页"; if ($page == 1) $back = ''; return array( $back, $next ); } /** * 分页-Select选择器 * * @param int $page_num * 页数 * @param string $url * URL地址 * @param int $page * 当前页 * @return string */ private static function get_select_html($page_num, $url, $page) { if (self::$conf['select'] == 0) return ''; $html = '  '; return $html; } /** * 分页-获取分页显示数字 * * @param int $page * 当前页 * @param int $page_num * 页数 * @return array(start, end) */ private static function get_satrt_and_end($page, $page_num) { $temp = floor(self::$show_num / 2); if ($page_num < self::$show_num) return array( 1, $page_num ); if ($page <= $temp) { $start = 1; $end = self::$show_num; } elseif (($page_num - $temp) < $page) { $start = $page_num - self::$show_num + 1; $end = $page_num; } else { $start = $page - $temp; $end = $page - $temp + self::$show_num - 1; } return array( $start, $end ); } }