PHP分页导航类

	function show($config=array()){

		// 初始化

		if(!isset($config['total'])) exit('total is null');
		if(!isset($config['pagesize'])) $config['pagesize']=10;
		if(!isset($config['page'])) $config['page']=1;
		if(!isset($config['base'])) $config['base']='?';

		if(!isset($config['first_text'])) $config['first_text']='首页';
		if(!isset($config['first_open'])) $config['first_open']='';
		if(!isset($config['first_close'])) $config['first_close']='';

		if(!isset($config['last_text'])) $config['last_text']='尾页';
		if(!isset($config['last_open'])) $config['last_open']='';
		if(!isset($config['last_close'])) $config['last_close']='';

		if(!isset($config['next_text'])) $config['next_text']='下一页';
		if(!isset($config['next_open'])) $config['next_open']='';
		if(!isset($config['next_close'])) $config['next_close']='';

		if(!isset($config['prev_text'])) $config['prev_text']='上一页';
		if(!isset($config['prev_open'])) $config['prev_open']='';
		if(!isset($config['prev_close'])) $config['prev_close']='';

		if(!isset($config['num_open'])) $config['num_open']='';
		if(!isset($config['num_close'])) $config['num_close']='';

		if(!isset($config['c_open'])) $config['c_open']='';
		if(!isset($config['c_close'])) $config['c_close']='';

		if(!isset($config['dispay_num'])) $config['dispay_num']=TRUE;

		// 计算
		$config['page']=ceil($config['page']);
		$pages = ceil ( $config['total'] / $config['pagesize'] );
		$offset= ($config['page']-1)*$config['pagesize'];

		// 判断

		if($config['page']>$pages) exit('page>pages');
		if($config['page']<1) exit('page<pages');

		// 生成
		$tmp='';

		// 首页 上一页
		if ($config['page']-1 < 1) {
			$tmp .= $config['first_open'].$config['first_text'].$config['first_close'].' ';
			$tmp .= $config['prev_open'].$config['prev_text'].$config['prev_close'].' ';
		} else {
			$tmp .= $config['first_open'].'<a href="'.$config['base'].'&page=1">'.$config['first_text'].'</a>'.$config['first_close'].' ';
			$tmp .= $config['prev_open'].'<a href="'.$config['base'].'&page='.($config['page']-1).'">'.$config['prev_text'].'</a>'.$config['prev_close'].' ';
		}

		// 中间数字

		$st=$config['page']-4;
		$et=$config['page']+4;

		if($st<1)$st=1;
		if($et>$pages)$et=$pages;

		for($i=$st;$i<=$et;$i++){
			if($i==$config['page']){
				$tmp.=	$config['num_open'].$i.$config['num_close'].' ';
			}
			else
			{
				$tmp.=	$config['c_open'].'<a href="'.$config['base'].'&page='.$i.'">'.$i.'</a>'.$config['c_close'].' ';
			}
		}

		// 尾页 下一页
		if ($config['page'] >= $pages) {
			$tmp .= $config['next_open'].$config['next_text'].$config['next_close'].' ';
			$tmp .= $config['last_open'].$config['last_text'].$config['last_close'].' ';
		} else {
			$tmp .= $config['next_open'].'<a href="'.$config['base'].'&page='.($config['page']+1).'">'.$config['next_text'].'</a>'.$config['next_close'].' ';
			$tmp .= $config['last_open'].'<a href="'.$config['base'].'&page='.$pages.'">'.$config['last_text'].'</a>'.$config['last_close'].' ';
		}

		return $tmp;
	}

不说怎么用了一看就明白

PHP如何把超长的文章分页?

长文章分页是一个常用的小功能,确实不太复杂。

$content='第一页[nextpage]第二页[nextpage]第三页'; //文章的内容,手工分页用[nextpage]分开。
$cs=explode('[nextpage]',$content); // 转换为数组
echo $cs[0]; // 这就是第一页
echo $cs[1]; // 这就是第二页
echo $cs[2]; // 这就是第三页 
echo $cs[3]; //没有第四页 所以这里会报错