Thinkphp生成HTML页面

本文介绍了使用ThinkPHP框架进行页面静态化的实现方法,包括伪静态与真静态的区别及应用场景,详细展示了通过buildHtml方法自动生成HTML静态文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

页面静态化有很多好处,加快页面打开浏览速度,有利于搜索引擎优化SEO,减轻服务器负担,网站更安全,HTML页面不会受php相关漏洞的影响。

常说的页面静态化分为两种,一种是伪静态,即url 重写,一种是真静态化。

ThinkPHP 也自带了生成静态文件的方法 buildHtml,方法在

/ThinkPHP/Library/Think/Controller.class.php,Line 86:


/**
 *  创建静态页面
 * @access protected
 * @htmlfile 生成的静态文件名称
 * @htmlpath 生成的静态文件路径
 * @param string $templateFile 指定要调用的模板文件
 * 默认为空 由系统自动定位模板文件
 * @return string
 */
protected function buildHtml($htmlfile='',$htmlpath='',$templateFile='') {
	$content    =   $this->fetch($templateFile);
	$htmlpath   =   !empty($htmlpath)?$htmlpath:HTML_PATH;
	$htmlfile   =   $htmlpath.$htmlfile.C('HTML_FILE_SUFFIX');
	Storage::put($htmlfile,$content,'html');
	return $content;
}


使用方法也很简单:

(1)在根目录下的程序入口文件index.php中加下面这行:


define('HTML_PATH', './HTML/');//生成静态页面的文件位置

(2)在项目的配置文件config.php中加下面这行:


'HTML_FILE_SUFFIX' => '.html',// 默认静态文件后缀

(3)在需要生成静态页的action里调用方法

 public function index(){ $map = "id = $_GET[id]"; $list = M("artical")->where($map)->limit(5)->order("add_time desc")->select(); $this->assign("news", $list); $this->buildHtml('news', HTML_PATH . '/news/', 'index'); $this->display(); }


然后在根目录下的HTML目录中就会出现一个news.html文件。

=========================================

如实执行了,把buidhtml放在了common.php里,作为函数,其他都一样,还解决了生成文件名乱码的情况:

 $keyword=iconv("UTF-8","gb2312", $keyword);     $this->buildHtml($keyword, HTML_PATH . '/event/', 'index'); 

 

转载于:https://my.oschina.net/afengzxf/blog/1608982

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值