| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
PHP生成HTML静态页面实现方法详解
 

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

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

CODE:
<?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."成功!";这句去掉,放到循环后的显示,因为该语句将中止程序执行。例:
CODE:
<?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 (
"生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!"
);

?> 

上一页  [1] [2] 


  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章