博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP生成静态页buildHtml方法
阅读量:6389 次
发布时间:2019-06-23

本文共 1361 字,大约阅读时间需要 4 分钟。

原来ThinkPHP自带了生成静态页的函数buildHtml,使用起来很方便!最新的手册里没写这个方法,向大家介绍一下。

PHP
1
2
3
4
5
6
7
8
9
10
11
    protected function buildHtml($htmlfile='',$htmlpath='',$templateFile='') {
        $content = $this->fetch($templateFile);
        $htmlpath   = !empty($htmlpath)?$htmlpath:HTML_PATH;
        $htmlfile =  $htmlpath.$htmlfile.C('HTML_FILE_SUFFIX');
        if(!is_dir(dirname($htmlfile)))
            // 如果静态目录不存在 则创建
            mk_dir(dirname($htmlfile));
        if(false === file_put_contents($htmlfile,$content))
            throw_exception(L('_CACHE_WRITE_ERROR_').':'.$htmlfile);
        return $content;
    }

使用方法:

PHP
1
$this->buildHtml('静态文件', '静态路径','模板文件');

参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件。例如静态文件设置a/index.那么保存的路径就是项
目路径/Html/a/index.html(默认的静态路径在项目路径的Html文件夹下,没有可以自己创建)

参数二:静态路径,上面已经说明了默认的路径,3.0中可以在入口文件里加入参数来更改静态路径。

define(‘HTML_PATH’, ‘./’);(将静态路径义为网站根目录)

参数三:模板文件,我感觉官方这个描述是不正确的,准确的来说应该是目标模块,就是需要生成静态文件的模块。格式:模块名:操作。比如要生成Index下的a方法为静态文件,那就是Index:a。如果为空则默认生成当前操作的静态文件。

生成静态页,我们要选择一个静态模板页,静态化网页的原理也就是替换模板中的变量,所以我们要把需要替换的变量的值获取出来,比如

PHP
1
2
3
4
5
$this->assign ( 'webname', $websites ['name'] );
$this->assign ( 'siteid', $siteid );
$this->assign ( 'type', $type );
$this->assign ( 'header', $websites ['templatedirectory'] . '@Public_header' );
$this->assign ( 'footer', $websites ['templatedirectory'] . '@Public_footer' );

静态模板页有相应的{$header},{$footer}等,使用buildHtml方法后,就把这些变量给替换掉了。是不是很简单。

转载于:https://www.cnblogs.com/pxuan/p/6434641.html

你可能感兴趣的文章
值得推荐的C/C++框架和库
查看>>
Struts2利用iText导出word文档(包含表格)
查看>>
我写的Lightbox效果插件,基于MooTools 1.4
查看>>
linux字符cdev和Inode的关系
查看>>
转载 用python 获取当前时间
查看>>
后短信集成时代
查看>>
java的时间操作
查看>>
表达式计算 DataTable/DataRow/DataColumn Expression、JScript CodeDomProvider Eval
查看>>
[转]23种经典设计模式的java实现_5_职责链模式
查看>>
一些知识点的初步理解_4(协方差矩阵,ing...)
查看>>
提升磁盘IO性能的几个技巧
查看>>
ProGuard的返回错误代码1。异常的解决方法
查看>>
从GNOME切换到KDE了
查看>>
Android应用资源---布局资源类型(Layout)
查看>>
chrome/FF/safari浏览器下input和textarea的默认样式outline和resize
查看>>
PHP冒泡排序
查看>>
linux的套接口和管道
查看>>
[教程]MongoDB 从入门到进阶 (概要 以及 高级索引篇 TimeToLive GeoNear)
查看>>
**汇总CodeIgniter(CI)的数据库操作函数
查看>>
微软牛津计划-语音转文本-文本转语音代码和实现
查看>>