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
发表评论