网络编程
位置:首页>> 网络编程>> Asp编程>> ASP/php/aspx生成静态网页的方法(4)

ASP/php/aspx生成静态网页的方法(4)

作者:爱飞来  发布时间:2007-10-25 12:01:00 

标签:静态,模板,分页

二,静态分页问题。

如我们指定分页时,每页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);
 $num = mysql_num_rows ($query);
 $allpages = ceil ($num / $onepage);
 for ($i = 0;$i<$allpages; $i++){
 if ($i == 0){
 $indexpath = "index.html";
 } else {
 $indexpath = "index_".$i."html";
 }
 $start = $i * $onepage;
 $list = '';
 $sql_for_page = "select name,filename,title from article where channel='$channelid' limit $start,$onepage";
 $query_for_page = mysql_query ($sql_for_page);
 while ($result = $query_for_page){
 $list .= '<a href='.$root.$result['filename'].' target=_blank>'.$title.'</a><br>';
 }
 $content = str_replace ("{articletable}",$list,$content);
 if (is_file ($indexpath)){
 @unlink ($indexpath); //若文件已存在,则删除
 }
 $handle = fopen ($indexpath,"w"); //打开文件指针,创建文件
 /*
  检查文件是否被创建且可写
 */
 if (!is_writable ($indexpath)){
 echo "文件:".$indexpath."不可写,请检查其属性后重试!"; //修改为echo
 }
 if (!fwrite ($handle,$content)){ //将信息写入文件
 echo "生成文件".$indexpath."失败!"; //修改为echo
 } 
 fclose ($handle); //关闭指针
 }
 fclose ($fp);
 die ("生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!");
?> 


大致思路如此,其中如其它数据生成,数据输入输出检查,分页内容指向等可酌情在页面中加入。

在实际文章系统处理过程当中,还有许多问题有待考虑,与动态页面不同之处,需注意的地方还有很多。但大致思路即是如此,其它方面可举一反三而得。

0
投稿

猜你喜欢

  • alert table 表名 add column 列名 alter table 表名 drop column 列名 eg: alter t
  • Dethe Elza (delza@livingcode.org), 高级技术架构师, Blast Radius  &n
  • XML、 XLink、 Namespace、 DTD、 Schema、 CSS、 XHTML...假如你从未接触XML, 或许你会感觉不知从
  • 如何用Response.Write调用代替内嵌表达式?我们可以利用下面的代码,注意:代码的每一行对响应流有一次写操作,所有的代码都包含在一个
  • [root@vm1 ~]# rpm -ivh groundwork-foundation-pro-1.6.1-67.noarch.rpm P
  • xml(可扩展标记语言)看起来可能像某种w3c标准——现在没有什么实际影响,即使以后能派上用场,也是很久以后的事。但实际上,它现在已经得到了
  • 图片的宽度和高度是未知的,没有一个固定的尺寸,在这个前提下要使图片在一个固定了宽度和高度的容器中垂直居中,想想感觉还是挺麻烦的,由于最近的项
  • 1、图片防盗链在一些大型网站中,比如百度贴吧,该站点的图片采用了防盗链的规则,以至于使用下面代码会发生错误。简单代码:<!DOCTYP
  • Oracle数据库开发应用中经常对数据库管理员有这样的需求,对比两个不同实例间某模式下对象的差异或者对比两个不同实例某模式下表定义的差异性,
  • 下面继续为大家带来XHTML与HTML兼容的16条指引!1.避免将页面声明为XML类型,页面使用UTF-8或者UTF-16字符集。2.在空元
  • 译注:开发人员如何从无休止的需求、项目进度中摆脱烦躁的心态,这是每个人都值得思考的话题。无意间看见了这篇文章,恐于太长遂将其精简翻译,错误之
  • 本文阐述了网页设计中的十大诀窍,作为网页开发者我们应该注意,这样才能最大限度得发挥网站的功能和效益: 预早筹划设计主页未必很艰难。
  • 做一个项目用到Ajax,开始觉得挺好,后来发现一个问题,例如删除一项,恢复之后就不能再接着删除,必须要等一段时间,后来知道是IE缓存的问题。
  • 判断某一个表的记录总数,对于一个开发者来说是最再常见不过的事,我想大家都常用的作法就是:以下为引用的内容:select count(*) f
  • 一、意义:当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、网络故障、进程故障和系统故障)影响数
  • 内容摘要:当我们不想让某IP服务我们的网站时,我们就要写段程序来限制IP地址。asp中如何对ip进行过滤限制?本文介绍了一种方法,这个函数只
  • 原理 采集程序实际上是通过了XML中的XMLHTTP组件调用其它网站上的网页。比如新闻采集程序,很多都是调用了sina的新闻网页,并且对其中
  • 什么是.netMicrosoft&reg; .NET 是 Microsoft XML Web services 平台。XML Web
  • 原始结构:Column1 Column2----------- ----------1 A1 B2 C2 D2 E3 F查询效果:Colum
  • 在后台处理数据时,前台页面同时计数显示进度条Proess Bar使用了layer来显示用法:1。引用<script lang
手机版 网络编程 asp之家 www.aspxhome.com