


Super paging class 2.0 released, supports custom styles, default 4 display modes_PHP tutorial
Super paging class 2.0 is released, supports custom styles, and has 4 default display modes
I saw someone on the forum asking for Baidu paging class, so I posted the paging class from a few weeks ago.
2.0 has been revised relative to 1.0 as follows:
1. Supports PHP4 and PHP5
2. Added ajax paging function
3. Optimized the overall structure of the program
4. Added custom style The function
code is as follows:
/**
* filename: ext_page.class.php
* @package:phpbean
* @author :feifengxlq
* @copyright :Copyright 2006 feifengxlq
* @license:version 2.0
* @create:2006-5-31
* @modify:2006-6-1
* @modify:feifengxlq 2006-11-4
* description: Super paging class, four paging modes, the default paging style is similar to Baidu and Google.
* 2.0 added features: support custom styles, custom styles, supports both PHP4 and PHP5,
* to see detail,please visit [url=http://www.phpobject.net/blog/read. php]http://www.phpobject.net/blog/read.php[/url]?
* example:
* Mode four paging modes:
require_once('../libs/classes /page.class.php');
$page=new page(array('total'=>1000,'perpage'=>20));
echo 'mode:1
' .$page->show();
echo '
mode:2
'.$page->show(2);
echo '
mode:3< br>'.$page->show(3);
echo '
mode:4
'.$page->show(4);
Turn on AJAX:
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
echo 'mode:1
'.$ajaxpage->show();
Adopt inherited custom paging display mode:
demo:http://www.phpobject.net/blog
*/
class page
{
/**
* config ,public
*/
var $page_name="PB_page";// page tag, used to control the url page. For example, PB_page in xxx.php?PB_page=2
var $next_page='>';//Next page
var $pre_page='<';//Previous page
var $first_page='First';//Home page
var $last_page='Last';//Last page
var $pre_bar='<<';//Previous paging bar
var $ next_bar='>>';//Next paging bar
var $format_left='[';
var $format_right=']';
var $is_ajax=false;//Whether it is supported AJAX paging mode
/**
* private
*
*/
var $pagebarnum=10;//Control the number of record bars.
var $totalpage=0;//总页数
var $ajax_action_name='';//AJAX动作名
var $nowindex=1;//当前页
var $url="";//url地址头
var $offset=0;
/**
* constructor构造函数
*
* @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']...
*/
function page($array)
{
if(is_array($array)){
if(!array_key_exists('total',$array))$this->error(__FUNCTION__,'need a param of total');
$total=intval($array['total']);
$perpage=(array_key_exists('perpage',$array))?intval($array['perpage']):10;
$nowindex=(array_key_exists('nowindex',$array))?intval($array['nowindex']):'';
$url=(array_key_exists('url',$array))?$array['url']:'';
}else{
$total=$array;
$perpage=10;
$nowindex='';
$url='';
}
if((!is_int($total))||($total<0))$this->error(__FUNCTION__,$total.' is not a positive integer!');
if((!is_int($perpage))||($perpage<=0))$this->error(__FUNCTION__,$perpage.' is not a positive integer!');
if(!empty($array['page_name']))$this->set('page_name',$array['page_name']);//设置pagename
$this->_set_nowindex($nowindex);//设置当前页
$this->_set_url($url);//设置链接地址
$this->totalpage=ceil($total/$perpage);
$this->offset=($this->nowindex-1)*$this->perpage;
if(!empty($array['ajax']))$this->open_ajax($array['ajax']);//打开AJAX模式
}
/**
* Set the value of the specified variable name in the class. If the change does not belong to this class, an exception will be thrown
*
* @param string $var
* @param string $value
*/
function set($var,$value)
{
if(in_array($var,get_object_vars($this)))
$this->$var=$value;
else {
$this->error(__FUNCTION__,$var." does not belong to PB_Page!");
}
}
/**
* 打开倒AJAX模式
*
* @param string $action 默认ajax触发的动作。
*/
function open_ajax($action)
{
$this->is_ajax=true;
$this->ajax_action_name=$action;
}
/**
* Get the code to display "next page"
*
* @param string $style
* @return string
*/
function next_page($style='')
{
if($this->nowindex<$this->totalpage){
return $this->_get_link($this->_get_url($this->nowindex+1),$this->next_page,$style);
}
return ''.$this->next_page.'';
}
/**
* Get the code to display "previous page"
*
* @param string $style
* @return string
*/
function pre_page($style='')
{
if($this->nowindex>1){
return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style);
}
return ''.$this->pre_page.'';
}
/**
* Get the code that displays the "Home Page"
*
* @return string
*/
function first_page($style='')
{
if($this->nowindex==1){
return ''.$this->first_page.'';
}
return $this->_get_link($this->_get_url(1),$this->first_page,$style);
}
/**
* Get the code to display the "last page"
*
* @return string
*/
function last_page($style='')
{
if($this->nowindex==$this->totalpage){
return ''.$this->last_page.'';
}
return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style);
}
function nowbar($style='',$nowindex_style='')
{
$plus=ceil($this->pagebarnum/2);
if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->nowindex);
$begin=$this->nowindex-$plus+1;
$begin=($begin>=1)?$begin:1;
$return='';
for($i=$begin;$i<$begin+$this->pagebarnum;$i++)
{
if($i<=$this->totalpage){
if($i!=$this->nowindex)
$return.=$this->_get_text($this->_get_link($this->_get_url($i),$i,$style));
else
$return.=$this->_get_text(''.$i.'');
}else{
break;
}
$return.="n";
}
unset($begin);
return $return;
}
/**
* Get the code to display the jump button
*
* @return string
*/
function select()
{
$return='';
return $return;
}
/**
* Get the value required for limit in the mysql statement
*
* @return string
*/
function offset()
{
return $this->offset;
}
/**
* Control paging display style (you can add the corresponding style)
*
* @param int $mode
* @return string
*/
function show($mode=1)
{
switch ($mode)
{
case '1':
$this->next_page='下一页';
$this->pre_page='上一页';
return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页';
break;
case '2':
$this->next_page='下一页';
$this->pre_page='上一页';
$this->first_page='首页';
$this->last_page='尾页';
return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'页]'.$this->next_page().$this->last_page().'第'.$this->select().'页';
break;
case '3':
$this->next_page='下一页';
$this->pre_page='上一页';
$this->first_page='首页';
$this->last_page='尾页';
return $this->first_page().$this->pre_page().$this->next_page().$this->last_page();
break;
case '4':
$this->next_page='下一页';
$this->pre_page='上一页';
return $this->pre_page().$this->nowbar().$this->next_page();
break;
case '5':
return $this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this->next_bar();
break;
}
}
/*----------------private function (私有方法)-----------------------------------------------------------*/
/**
* Set url header address
* @param: String $url
* @return boolean
*/
function _set_url($url="")
{
if(!empty($url)){
//手动设置
$this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."=";
}else{
//自动获取
if(empty($_SERVER['QUERY_STRING'])){
//不存在QUERY_STRING时
$this->url=$_SERVER['REQUEST_URI']."?".$this->page_name."=";
}else{
//
if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'=')){
//地址存在页面参数
$this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI']);
$last=$this->url[strlen($this->url)-1];
if($last=='?'||$last=='&'){
$this->url.=$this->page_name."=";
}else{
$this->url.='&'.$this->page_name."=";
}
}else{
//
$this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'=';
}//end if
}//end if
}//end if
}
/**
* Set the current page
*
*/
function _set_nowindex($nowindex)
{
if(empty($nowindex)){
//系统获取
if(isset($_GET[$this->page_name])){
$this->nowindex=intval($_GET[$this->page_name]);
}
}else{
//手动设置
$this->nowindex=intval($nowindex);
}
}
/**
* Return the address value for the specified page
*
* @param int $pageno
* @return string $url
*/
function _get_url($pageno=1)
{
return $this->url.$pageno;
}
/**
* Get pagination display text, for example, by default _get_text('1') will return [1 *
* @param String $str
* @return string $url
*/
function _get_text($str)
{
return $this->format_left.$str.$this->format_right;
}
/**
* Get link address
*/
function _get_link($url,$text,$style=''){
$style=(empty($style))?'':'class="'.$style.'"';
if($this->is_ajax){
//如果是使用AJAX模式
return 'ajax_action_name.'(''.$url.'')">'.$text.'';
}else{
return ''.$text.'';
}
}
/**
* Error handling methods
*/
function error($function,$errormsg)
{
die('Error in file '.__FILE__.' ,Function '.$function.'() :'.$errormsg);
}
}
?>
提供一个简单的演示demo
require_once('../libs/classes/page.class.php');
$page=new page(array('total'=>1000,'perpage'=>20));
echo 'mode:1
'.$page->show();
echo '
mode:2
'.$page->show(2);
echo '
mode:3
'.$page->show(3);
echo '
mode:4
'.$page->show(4);
echo '
开始AJAX模式:';
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
echo 'mode:1
'.$ajaxpage->show();
?>
Demo address: http://traffic02.100steps.net/52site/test/page.php

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Even answering calls in Do Not Disturb mode can be a very annoying experience. As the name suggests, Do Not Disturb mode turns off all incoming call notifications and alerts from emails, messages, etc. You can follow these solution sets to fix it. Fix 1 – Enable Focus Mode Enable focus mode on your phone. Step 1 – Swipe down from the top to access Control Center. Step 2 – Next, enable “Focus Mode” on your phone. Focus Mode enables Do Not Disturb mode on your phone. It won't cause any incoming call alerts to appear on your phone. Fix 2 – Change Focus Mode Settings If there are some issues in the focus mode settings, you should fix them. Step 1 – Open your iPhone settings window. Step 2 – Next, turn on the Focus mode settings

1. The picture below is the default screen layout of edius. The default EDIUS window layout is a horizontal layout. Therefore, in a single-monitor environment, many windows overlap and the preview window is in single-window mode. 2. You can enable [Dual Window Mode] through the [View] menu bar to make the preview window display the playback window and recording window at the same time. 3. You can restore the default screen layout through [View menu bar>Window Layout>General]. In addition, you can also customize the layout that suits you and save it as a commonly used screen layout: drag the window to a layout that suits you, then click [View > Window Layout > Save Current Layout > New], and in the pop-up [Save Current Layout] Layout] enter the layout name in the small window and click OK

In an excel table, sometimes you may need to insert coordinate axes to see the changing trend of the data more intuitively. Some friends still don’t know how to insert coordinate axes in the table. Next, I will share with you how to customize the coordinate axis scale in Excel. Coordinate axis insertion method: 1. In the excel interface, select the data. 2. In the insertion interface, click to insert a column chart or bar chart. 3. In the expanded interface, select the graphic type. 4. In the right-click interface of the table, click Select Data. 5. In the expanded interface, you can customize it.

Recently, Samsung Display and Microsoft signed an important cooperation agreement. According to the agreement, Samsung Display will develop and supply hundreds of thousands of OLEDoS panels for mixed reality (MR) head-mounted devices to Microsoft. Microsoft is developing an MR device for multimedia content such as games and movies. This device is expected to It will be launched after the OLEDoS specifications are finalized, mainly serving the commercial field, and is expected to be delivered as early as 2026. OLEDoS (OLED on Silicon) technology OLEDoS is a new display technology that deposits OLED on a silicon substrate. Compared with traditional glass substrates, it is thinner and has higher pixels. OLEDoS display and ordinary display

There are two most common ways to paginate PHP arrays: using the array_slice() function: calculate the number of elements to skip, and then extract the specified range of elements. Use built-in iterators: implement the Iterator interface, and the rewind(), key(), current(), next(), and valid() methods are used to traverse elements within the specified range.

Nowadays, many Windows 10 laptops have fingerprint recognition function, which can directly unlock the device through fingerprint. However, due to a problem with the biometric device driver, a fingerprint reader that supports Windows cannot be found. Today, I will help you solve this problem. What to do if you cannot find a fingerprint reader that supports Windows 1. First, right-click the "Computer" icon on the desktop, click "Manage" in the pop-up option box to enter the computer management page, and then click "Device Manager". 2. Find "Biometric Device" in the expansion list. After expanding it, you can find an exclamation mark warning in front of the faulty fingerprint reader. 3. Then right-click the device and click "Properties" in the pop-up window. At this time, it will prompt "The device cannot be started." 4. Then right

Youku software integrates a variety of different video resources for everyone to watch. Just search for what you want. And when downloading videos, friends can set the default download resolution of the video. If you want to know the specific operation method If so, remember to come to the PHP Chinese website to learn more. How to share the default download resolution of Youku 1. First open the Youku Video APP on your mobile phone and click [My] in the lower right corner of the page to switch. 2. After coming to my page, find the [Settings] function below and click on it to open it. 3. There is a [Default Download Resolution] on the settings page, click on it to enter the settings. 4. Finally, a list of options is displayed on the default download resolution page. Select the resolution you want to set.

iPhone is currently one of the most popular smartphones in the world. Its powerful functions and convenient use experience are deeply loved by users. Among them, the custom ringtone function is an important part of allowing users to personalize their mobile phones. This article will introduce how to set custom ringtones on iPhone to help users achieve their own unique ringtone experience. iPhone provides a variety of methods for setting ringtones, which will be introduced below. Method 1: Use iTunes to synchronize ringtones. Open the iTunes software and make sure your iPhone is connected to the computer.
