Home > Backend Development > PHP Tutorial > php+smarty批量生成静态文件

php+smarty批量生成静态文件

WBOY
Release: 2016-06-23 14:37:40
Original
827 people have browsed it

采用php+smary来模拟dedecms后台?>"更新所有文档”的功能。特别说明,因为是在本机测试,只是为了能看到实现的功能,所以写得很简单。当然,本人也是菜鸟级php爱好者,欢迎大家批评指正。

第一步:下载和安装smarty

(1)我的网址根目录:localhost/php/

(2)php根目录下有:

libs目录??smarty库文件;

tpls目录??用于放置smarty的cache目录、configs目录、templates目录、templates_c目录;

article目录?? 呆会生成的静态文件,都放在这里

index.php文件??php程序代码,呆会访问该页面时,即自动批量生成静态文件

第二步:index.php代码

一切从简,这里从数据库 dede_archives表中,只读取是 id 和 title 两个字段的内容。

<?phpheader("content-type:text/html;charset=utf-8");/**    * smarty 配置**/include("./libs/Smarty.class.php");$smarty = new Smarty();$smarty->setTemplateDir('./tpls/templates/');$smarty->setCompileDir('./tpls/templates_c/');$smarty->setConfigDir('./tpls/configs/');$smarty->setCacheDir('./tpls/cache');/**    * 从数据库中读取内容**/$art = array();$mysqli = new mysqli("localhost","root","123456","dedecmsv57gbksp1");if($mysqli->error){    die("数据库连接失败:". $mysqli->error);}$mysqli->query('set names utf8');$query = "select id,title from dede_archives limit 0,3";//简单测试,所以只读取了3篇文章$res = $mysqli->query($query);while($row = $res->fetch_assoc()){    $art[] = $row;}$mysqli->close();/**    *循环生成静态文件**/for($i=0,$len=count($art);$i<$len;$i++){    $smarty->assign("id",$art[$i]['id']);    $smarty->assign("title",$art[$i]['title']);    $str = $smarty->fetch("view.html");//获得模板中smarty标签被替换后的内容        //生成静态文件    $fp = fopen("./article/views-".$art[$i]['id'].".html","w");    fwrite($fp, $str);    fclose($fp);}echo "生成静态文件成功";?>
Copy after login

第三步:模板文件 ./tpls/templates/view.html

<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><title>{$title}</title></head><body><p>文章id为:{$id}</p><h4>文章标题:{$title}</h4></body></html>
Copy after login

ok,完成,访问 index.php页面,即在 ./article/ 目录下自动生成静态文件。

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template