⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pageturn.inc.php

📁 功能齐全
💻 PHP
字号:
<?
/*
------------------------------------------------------------------------------------
类名:PAGETURN
说明:PHP+MySQL分页类
作者:龙卫国
网络user:lwg888
邮箱:lwg888@163.com
使用、修改、传播请保留作者信息
------------------------------------------------------------------------------------
*/

if(!defined("__CLASS_PAGETURN__"))
{
	define("__CLASS_PAGETURN__",1);

	class PageTurn
	{
		var $maxnum;                 //每页显示数
		var $navchar=array('First','[<]','[>]','Last');
		//导航条的显示字符,值可以自定义,如一个img标签
		//$navchar[0]表示第一页,$navchar[1]表示前一页,$navchar[2]表示后一页,$navchar[3]表示最后页

		var $key;                    //如果一个页面中有多个分页时作为区别标记

		var $totalnum;               //总记录数
		var $totalpage;              //总页数
		var $startnum;               //本页的第一条在总数中的序数
		var $endnum;                 //本页的最后一条在总数中的序数
		var $pagenum;                //本页在总页数中的序数
		var $shownum;                //本页实际显示数
		var $field;                  //结果记录的集合
		var $linkhead;               //链接指定的url及要传递的相关参数
		var $form_vars = array();

		function PageTurn($totalnum='', $maxnum='',$form_vars = '',$key="")
		{

			$this->totalnum = $totalnum;
			$this->maxnum   = $maxnum;
			$this->key      = $key;

			if (!empty($form_vars))
			{
				if (!is_array($form_vars)) $form_vars = (array)$form_vars;
				$this->form_vars = $form_vars;
			}

			$ifpost=false;           //是否有$_POST变量,如果有的话,则在翻页时只传递其值,其它的一律省略

			if (sizeof($this->form_vars)>0)
			{
				$formlink = "";

				foreach ($this->form_vars as $val)
				{
					if (isset($_POST[$val])) $formlink.= $val."=".urlencode($_POST[$val])."&";
				}

				if ($formlink != "")
				{
					$ifpost=true;
					$querystring = $formlink;
				}
			}
			else  if (count($_GET) > 0)                  //如果没有$_POST变量,则将$_GET变量分析后作为翻页时传递的参数
			{
				$querystring = '';
				foreach ($_GET as $key => $val)
				{
					if ($key != "totalnum".$this->key && $key != "pagenum".$this->key)$querystring .= $key."=".urlencode($val)."&";
				}
			}

			if (isset($_GET["maxnum".$this->key]) && $_GET["maxnum".$this->key] > 0)
			{
				$this->maxnum = sprintf('%d',$_GET["maxnum".$this->key]);
			}

			if ($this->maxnum < 1 ) $this->maxnum = $this->totalnum;

			if ($this->totalnum < 1)
			{
				$this->totalnum  = 0 ;
				$this->totalpage = 0 ;
				$this->pagenum   = 0 ;
				$this->startnum  = 0 ;
				$this->endnum    = 0 ;
				$this->shownum   = 0 ;
			}
			else
			{
				$this->totalpage = ceil($this->totalnum/$this->maxnum);

				$this->pagenum   = (isset($_GET["pagenum".$this->key]) && $_GET["pagenum".$this->key]>0 && !$ifpost)
				? sprintf('%d',$_GET["pagenum".$this->key])
				: 1;

				if ($this->pagenum > $this->totalpage) $this->pagenum = $this->totalpage;

				$this->startnum = max(($this->pagenum - 1) * $this->maxnum,0);
				$this->endnum   = min($this->startnum + $this->maxnum, $this->totalnum);
				$this->shownum  = $this->endnum - $this->startnum;
			}

			$querystring .= "totalnum" . $this->key . "=" . $this->totalnum;

			if (isset($_GET["maxnum" . $this->key])) $querystring .= "&maxnum" . $this->key . "=" . $this->maxnum;
			$this->linkhead = $_SERVER['PHP_SELF'] . "?" . $querystring;
		}

		//显示如"共14页27条"
		function total()
		{
			return $this->getSysMsg('5007',$this->totalpage)." ".$this->getSysMsg('5008',$this->totalnum)." ";
		}

		//显示如"本页从第9条到第10条"
		function fromto()
		{
			$startnum = $this->startnum + 1;
			if ($this->totalnum==0)$startnum = 0;

			return $this->getSysMsg('5009',$startnum)." ".$this->getSysMsg('5010',$this->endnum)." ";
		}

		//navbar方法显示页数导航条
		//$num_size表示多少个导航数字,如$num_size=5则显示" 1 2 3 4 5 "
		//$nolink_show没有链接的导航字符是否显示,true显示,false不显示
		//$nolink_color没有链接的导航字符显示的颜色
		function navbar($num_size=0,$nolink_show=false,$nolink_color="#ff0000")
		{
			if ($this->totalpage <= 1) return;

			$str_first = $str_pre = $str_frontell = $str_num = $str_backell = $str_next = $str_last = '';

			if ($num_size>0)
			{
				$tmpnum    = floor($num_size/2);
				$startpage = max(min($this->pagenum - $tmpnum, $this->totalpage - $num_size + 1), 1);
				$endpage   = min($startpage + $num_size - 1, $this->totalpage);

				if ($startpage > 1)              $str_frontell = " … ";

				if ($endpage < $this->totalpage) $str_backell  = " … ";

				$str_num = "";

				for ($i = $startpage; $i <= $endpage; $i++)
				{
					if ($i == $this->pagenum) $str_num .= " <font color=\"".$nolink_color."\">".$i."</font> ";
					else                      $str_num .= " <a href=\"".$this->linkhead."&pagenum".$this->key."=".$i."\" title=\"".$this->getSysMsg('5005',$i)."\">".$i."</a> ";
				}
			}

			if ($this->pagenum > 1)
			{
				$str_first = " <a href=\"".$this->linkhead."&pagenum".$this->key."=1\" title=\"".$this->getSysMsg('5001')."\">".$this->navchar[0]."</a> ";
				$str_pre   = " <a href=\"".$this->linkhead."&pagenum".$this->key."=".($this->pagenum-1)."\" title=\"".$this->getSysMsg('5002')."\">".$this->navchar[1]."</a> ";
			}
			else if ($nolink_show)
			{
				$str_first = " <font color=\"".$nolink_color."\">".$this->navchar[0]."</font> ";
				$str_pre   = " <font color=\"".$nolink_color."\">".$this->navchar[1]."</font> ";
			}

			if ($this->pagenum<$this->totalpage)
			{
				$str_next  = " <a href=\"".$this->linkhead."&pagenum".$this->key."=".($this->pagenum+1)."\" title=\"".$this->getSysMsg('5003')."\">".$this->navchar[2]."</a> ";
				$str_last  = " <a href=\"".$this->linkhead."&pagenum".$this->key."=".$this->totalpage."\" title=\"".$this->getSysMsg('5004')."\">".$this->navchar[3]."</a>  ";
			}
			else if ($nolink_show)
			{
				$str_next  =" <font color=\"".$nolink_color."\">".$this->navchar[2]."</font> ";
				$str_last  =" <font color=\"".$nolink_color."\">".$this->navchar[3]."</font> ";
			}

			return $str_first.$str_pre.$str_frontell.$str_num.$str_backell.$str_next.$str_last." ";
		}

		//用下拉列表显示如"到第n页\共m页"
		function pagejump($class = '')
		{
			if ($this->totalpage <= 1) return;

			$name  = "pagenum".$this->key;

			$write ="<select name='".$name."' ";

			if (!empty($class)) $write .= "class='".$class."' ";

			$write .= "onchange='javascript:location.href=this.options[this.selectedIndex].value'>";

			for ($i = 1; $i <= $this->totalpage; $i++)
			{
				$write .= "<option value=".$this->linkhead."&".$name."=".$i;

				if ($this->pagenum == $i) $write .= " selected";

				$write .= ">".$i."</option>";
			}

			$write .= "</select>";

			return $this->getSysMsg('5006',$write)."/".$this->getSysMsg('5007',$this->totalpage)." ";
		}

		//显示如"每页显示n条 "
		function maxnum()
		{
			return $this->getSysMsg('5011',$this->maxnum)." ";
		}

		function getSysMsg($num,$otherMsg='')
		{
			global $system_msg;
			$msg = sprintf($system_msg[$num],$otherMsg) ;
			return $msg;
		}

	} //end class

}//end if defined

?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -