zoukankan      html  css  js  c++  java
  • 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方法后,就把这些变量给替换掉了。是不是很简单。

  • 相关阅读:
    使用CustomValidate自定义验证控件
    C#中金额的大小写转换
    Andriod出错之Unable to build: the file dx.jar was not loaded from the SDK folder!
    VC 编写的打字练习
    机房工作笔记Ping只有单向通
    web服务协同学习笔记(1)
    Dll 学习3 将MDI子窗口封装在DLL中
    机房工作学习文件共享
    Andriod出错之Failed to find an AVD compatible with target 'Android 2.2'
    Andriod出错之wrapper was not properly loaded first
  • 原文地址:https://www.cnblogs.com/pxuan/p/6434641.html
Copyright © 2011-2022 走看看