php 文章内容分页或者生成静态化分页文件的简单示例

对php文章内容分页或者生成静态化分页文件感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧!

<?php /**
* @package myFramework create html class
* @Description Cut string
* @Environment : Apache2.0.59+PHP5.2.5+mysql5.0
* @arrange (编程之家) jb51.cc
* $test = <<<EOF
* EOF;
*
* $html = new myFrame_HTML(100);
* $html->createHtml($html->cut($test,1),'11');
*
*/
class myFrame_HTML extends myFrame
{
	//定义每页显示的数量
	var $count = 5000;
	var $pageAmount;
	var $charSet = 'UTF-8';
	var $folder = 'html/';
	function __construct($count ='')
	{
	if($count != '')
	{
	$this->count = $count;
	}
	}
	/**
	* cut string for pages
	*
	* @param string $contents
	* @param int $page this is start page
	* @return array
	*/
	function cut($contents,$page = 1)
	{
	$total = mb_strlen($contents);
	if($total < $this->count)
	{
	$this->pageAmount['contents'][] = $contents;
	$this->pageAmount['page'][] = $page;
	}else{
	$this->pageAmount['contents'][] = mb_strcut($contents,$this->count,$this->charSet);
	$this->pageAmount['page'][] = $page;
	$almost = mb_strcut($contents,$total,$this->charSet);
	$this->cut($almost,$page+1);
	}
	return $this->pageAmount;
	}
	function createDynamic($array,$page,$pageName = 'page',$queryString = '')
	{
	$pageFoot = $array['page'];
	$contents = $array['contents'];
	$html = '';
	$count = sizeof($contents);
	for ($i = 0; $i < $count; $i++)
	{
	$thisFile = $fileName;
	if($count == 1)
	{
	$html[$pageFoot[$i]]= $contents[$i];
	}else{
	$html[$pageFoot[$i]]= $contents[$i] . $this->createDynamicFoot($pageFoot,$pageFoot[$i],$pageName,$queryString);
	}
	}
	return $html[$page];
	}
	function createDynamicFoot($page,$current,$queryString)
	{
	foreach ($page as $p)
	{
	if($p == $current)
	{
	$foot .= ' [ '. $p .' ]';
	}else{
	$foot .= ' [ <a href=?'. $queryString . '&' . $pageName .'=' . $p .'>'.$p.'</a> ]';
	}
	}
	return '<div class=pageFoot>' . $foot . '</div>';
	}
	/**
	* create html
	*
	* @param array $array
	* @param string $fileName
	*/
	function createHtml($array,$fileName)
	{
	$pageFoot = $array['page'];
	$contents = $array['contents'];
	$html = '';
	$count = sizeof($contents);
	for ($i = 0; $i < $count; $i++)
	{
	$thisFile = $fileName;
	if($count == 1)
	{
	$html= $contents[$i];
	$thisFile = $fileName . '.html';
	}else{
	$html= $contents[$i] . $this->createFoot($pageFoot,$fileName);
	if($pageFoot[$i] == 1)
	{
	$thisFile = $thisFile . '.html';
	}else{
	$thisFile = $thisFile . '_' . $pageFoot[$i] . '.html';
	}
	}
	file_put_contents($this->folder . $thisFile,$html);
	}
	}
	/**
	* create page index
	*
	* @param int $page
	* @param int $current
	* @param string $fileName
	* @return string
	*/
	function createFoot($page,$fileName)
	{
	$foot = '';
	foreach ($page as $p)
	{
	if($p == $current)
	{
	$foot .= ' [ '. $p .' ]';
	}else{
	if($p == 1)
	{
	$foot .= ' [ <a href='. $fileName . '.html>'.$p.'</a> ]';
	}else{
	$foot .= ' [ <a href='. $fileName. '_' .$p . '.html>'.$p.'</a> ]';
	}
	}
	}
	return '<div class=pageFoot>' . $foot . '</div>';
	}
}
/*** 来自编程之家 jb51.cc(jb51.cc) ***/

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...