快速业务通道

PHP生成静态页面详解

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
;br>author:Matrix@Two_Max";
 $fp      = fopen ("temp.html","r");
 $content = fread ($fp,filesize ("temp.html"));
 $content .= str_replace ("{ file }",$file,$content);
 $content .= str_replace ("{ title }",$title,$content);
 // echo $content;
 
 $filename = "test/test.html";
 $handle  = fopen ($filename,"w"); //打开文件指针,创建文件
 /*
 检查文件是否被创建且可写
 */
 if (!is_writable ($filename)){
  die ("文件:".$filename."不可写,请检查其属性后重试!");
 }
 if (!fwrite ($handle,$content)){ //将信息写入文件
  die ("生成文件".$filename."失败!");
 }
 fclose ($handle); //关闭指针
 
 die ("创建文件".$filename."成功!");
?> 

实际应用中常见问题解决方案参考:

一,文章列表问题:

在数据库中创建字段,记录文件名,每生成一个文件,将自动生成的文件名存入数据库,对于推荐文章,只需指向存放静态文件的指定文件夹中的该页面即可。利用PHP操作处理文章列表,存为字符串,生成页面时替换此字符串即可。如,在页面中放置文章列表的表格加入标记{ articletable },而在PHP处理文件中:

 
<?php
 $title = "拓迈国际测试模板";
 $file = "TwoMax Inter test templet,<br>author:Matrix@Two_Max";
 $fp      = fopen ("temp.html","r");
 $content = fread ($fp,filesize ("temp.html"));
 $content .= str_replace ("{ file }",$file,$content);
 $content .= str_replace ("{ title }",$title,$content);
 
 // 生成列表开始
 $list = '''';
 $sql = "select id,title,filename from article";
 $query = mysql_query ($sql);
 while ($result = mysql_fetch_array ($query)){
  $list .= ''<a href=''.$root.$result[''filename''].'' target=_blank>''.$result[''title''].''</a><br>'';
 }
 $content .= str_replace ("{ articletable }",$list,$content);
 
 //生成列表结束
 // echo $content;
 
 $filename = "test/test.html";
 $handle  = fopen ($filename,"w"); //打开文件指针,创建文件
 /*
 检查文件是否被创建且可写
 */
 if (!is_writable ($filename)){
  die ("文件:".$filename."不可写,请检查其属性后重试!");
 }
 if (!fwrite ($handle,$content)){ //将信息写入文件
  die ("生成文件".$filename."失败!");
 }
 fclose ($handle); //关闭指针
 
 die ("创建文件".$filename."成功!");
?>

二,分页问题。

如我们指定分页时,每页20篇。某子频道列表内文章经数据库查询为45条,则,首先我们通过查询得到如下参数:1,总页数;2,每页篇数。第二步,for ($i = 0; $i < allpages; $i++),页面元素获取,分析,文章生成,都在此循环中执行。不同的是,die ("创建文件".$filename."成功!";这句去掉,放到循环后的显示,因为该语句将中止程序执行。例:

<?php
 $fp      = fopen ("temp.html","r");
 $content = fread ($fp,filesize ("temp.html"));
 $onepage = ''20'';
 $sql      = "select id from article where channel=''$channelid''";
 $query   = mysql_query ($sql);

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号