Home  >  Article  >  php教程  >  smarty实现PHP静态化

smarty实现PHP静态化

WBOY
WBOYOriginal
2016-06-06 19:48:53832browse

smarty中有一个获取模板页内容方法fetch(), 它的声明原形是这样的: ?php function fetch ( $resource_name , $cache_id = null , $compile_id = null , $display = false ) ? 第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为

smarty中有一个获取模板页内容方法fetch(), 它的声明原形是这样的:
<span><font face="新宋体"><span><?php <br /> <br> </span><span>function </span><span>fetch</span><span>(</span><span>$resource_name</span><span>, </span><span>$cache_id </span><span>= </span><span>null</span></font><font face="新宋体"><span>, <br>   </span><span>$compile_id </span><span>= </span><span>null</span><span>, </span><span>$display </span><span>= </span><span>false</span></font><span><font face="新宋体">) <br> <br> </font></span><span><font face="新宋体">?><br> </font></span></span>第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为是否显示模板内容. 生成静态页我们就需要用到这个方法.


<span><font face="新宋体"><span><?php <br />    $smarty </span><span>= new </span><span>Smarty</span></font><span><font face="新宋体">(); <br>   </font></span><font face="新宋体"><span>//其它模板替换语法... <br>    <br>    //下面这句取得页面中所有内容, 注意最后一个参数为false <br>   </span><span>$content </span><span>= </span><span>$smarty</span><span>-></span><span>fetch</span><span>(</span><span>'模板名称.tpl'</span><span>, </span><span>null</span><span>, </span><span>null</span><span>, </span><span>false</span></font><span><font face="新宋体">); <br>    <br>   </font></span><font face="新宋体"><span>//下面将内容写入至一个静态文件 <br>   </span><span>$fp </span><span>= </span><span>fopen</span><span>(</span><span>'news.html'</span><span>, </span><span>'w'</span></font><font face="新宋体"><span>); <br>   </span><span>fwrite</span><span>(</span><span>$fp</span><span>, </span><span>$content</span></font><font face="新宋体"><span>); <br>   </span><span>fclose</span><span>(</span><span>$fp</span></font><span><font face="新宋体">); <br> <br>   </font></span><font face="新宋体"><span>//OK, 到这里这个news.html静态页就生成了, 你可以处理你下一步的工作了 <br> </span><span>?> </span></font></span>

<span><font face="新宋体"><span> <table> <tr> <td valign="top"> <p>关于新闻表的设置问题你只需要: <br> </p> <table> <tr> <td> <p>代码:</p> <p><code><span><br> <span><font face="新宋体"><?php <br /> <br> create table news </font></span><font face="新宋体"><span>( <br>   </span><span>id int unsgined not null primary key auto_increment</span></font><font face="新宋体"><span>, <br>   </span><span>title varchar</span><span>(</span><span>255</span></font><font face="新宋体"><span>), <br>   </span><span>author varchar</span><span>(</span><span>50</span></font><font face="新宋体"><span>), <br>   </span><span>url varchar</span><span>(</span><span>100</span><span>), </span></font><font face="新宋体"><span>/* 这里是生成静态页的地址 */ <br>   </span><span>... </span></font><span><font face="新宋体">/*其它字段*/ <br> </font></span><font face="新宋体"><span>); <br> <br> </span><span>?></span> <br> </font></span><br>



   页面上你将新闻地址提取出来后就OK了..

补充:

这个URL在新闻入库的时候就要生成, 具体的过程是这样的:
1. 页面填写新闻内容, 提交表单
2. 按时间或是你自定义的格式生成URL
3. 拼接SQL语句, 将新闻内容写入数据库, 注意这时也要将URL的值写入
4. 取得模板页面内容, 按URL地址生成静态页

URL字段不会自动产生内容的...

Statement:
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