Heim > Backend-Entwicklung > PHP-Tutorial > php+smarty批量生成静态文件

php+smarty批量生成静态文件

WBOY
Freigeben: 2016-06-23 14:37:40
Original
814 Leute haben es durchsucht

采用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 "生成静态文件成功";?>
Nach dem Login kopieren

第三步:模板文件 ./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>
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage