ThinkPHP(tp5)一键生成静态方法
文章 7812 0 0 0
发布时间:2019年01月19日

概述

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

我们基本都是使用TP自带的静态化机制。但TP写的网站页面路由都比较繁琐复杂,不利于引擎优化。

前段时间做了个网站,由于网站层次太深,在进行SEO优化的时候,不好收录,无奈之下只得自己重新写方法进行页面静态化,采用的方法就是:在后台对每个栏目和内容手动点击进行静态化。后台添加栏目和文章之后手动点击生成静态页面文件。

原理就是:每一个栏目或者内容都唯一的URL路径,根据链接将内容提取出来,然后重新保存文件就是静态化之后的文件。页面中原有的a标签带有的链接,都通过正则表达式匹配之后,重新替换,以保证在一个静态页面中点击链接跳转到的下一个页面也是HTML/目录下的静态化页面。

先将自己写的方法贴出来,参数分别为(栏目或内容的URL路径,静态文件保存路径,生成静态文件的文件名):

protected function buildHtml($htmlfile='',$htmlpath='',$templateFile='') {
    $content = $this->fetch($templateFile);
    $htmlpath   = !empty($htmlpath)?$htmlpath:HTMLPATH;
    $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

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

可以自己做一个方法点击循环一下!

评论专区