• ThinkPHP生成静态页buildHtml方法


    原来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方法后,就把这些变量给替换掉了。是不是很简单。

  • 相关阅读:
    Gdb等几则笔记
    让GtkTextView支持undo/redo操作
    让基于DirectFB的Mozilla支持透明图
    在minimo中用方向键切换焦点
    Marvelllinux研究—dma.c源代码分析
    “垃圾”文章为何能上首页
    用xoops建立自己的开源网站
    R语言中sample函数
    R语言中text函数
    R语言绘图去除外围框线、坐标轴标线
  • 原文地址:https://www.cnblogs.com/pxuan/p/6434641.html
Copyright © 2020-2023  润新知