php生成html和结合框架使用

文章描述:

html静态文件利于搜索引擎抓取和减轻服务器访问压力,在以前很多cms系统都会生成html静态文件,那么生成静态文件的原理是什么呢?下面就给大家讲讲怎么生成静态页面和在框架里面怎么使用应用。

在使用php生成html之前我们需要明白实现的原理和方法,下面给大家介绍一哈原理和方法:

生成原理

生成文件原理是从数据库里面读取数据,对数据进行遍历循环,打开模板和读取模板,替换指定内容的值,关闭模板,创建新文件,将内容写入新文件和关闭生成文件即可。

实现功能

1、读取数据库数据,代码如下:

$result = $db->get_results("SELECT * FROM tp_article ",ARRAY_A);

2、新建模板example.html文件,在模板文件里面放入变量,代码如下:

<div class="single">
    <article><h1>{title}</h1></article>
    <div class="info">
        {newstime}
    </div>
    <div class="content">
        {content}
    </div>
</div>

3、循环遍历数据,定义生成文件路径和规则,打开模板和赋值替换内容,生成新的模板,代码如下:

foreach($result as $key=>$val){
    $title=$val['title'];
    $newstime = $val['newstime'];
    $content=$val['content'];
    $path="article/".($val['id']).".html";
 
    $fp=fopen("example.html","r");
    $str=fread($fp,filesize("example.html"));
    $str=str_replace("{title}",$title,$str);
    $str=str_replace("{newstime}",$newstime,$str);
    $str=str_replace("{content}",$content,$str);
    fclose($fp);
 
    $handle=fopen($path,"w");
    fwrite($handle,$str);
    fclose($handle);
 
    echo "生成".$path."<br/>";
}

框架使用

在这里使用的是smarty作为演示框架,在smarty模板里面代码如下:

{$title}

然后在PHP代码如下:

foreach($result as $key=>$val){
    $title=$val['title'];
    $newstime = $val['newstime'];
    $content=$val['content'];
 
    $smarty->assign('title',$title);
    $smarty->assign('newstime',$newstime);
    $smarty->assign('content',$content);
 
    $smarty->display('index.html');
    $content=$val[1];
    $path="articles-".($val['id']).".html";
 
    //替换example内容,并获取内容赋值给$str
    $fp=fopen("templates/index.html","r");
    $str=fread($fp,filesize("templates/index.html"));
    $str=str_replace('{$title}',$title,$str);
    $str=str_replace('{$content}',$content,$str);
    fclose($fp);
 
    //新建空白文件,将$str写入
    $handle=fopen($path,"w");
    fwrite($handle,$str);
    fclose($handle);
 
    echo "生成".$path."<br/>";
}

php生成html是不是很简单呢,我们也可以把php生成html应用到thinkphp、laravel框架里面。

发布时间:2021/08/10

发表评论