首页
社区
课程
招聘
[旧帖] [原创]动态网页静态化(求邀请码) 0.00雪花
发表于: 2010-12-1 04:07 861

[旧帖] [原创]动态网页静态化(求邀请码) 0.00雪花

2010-12-1 04:07
861
标 题: 【原创】动态网页静态化(求邀请码)
作 者: tamude
时 间: 2010-12-01,04:07:02
链 接: http://bbs.pediy.com/showthread.php?t=125764

在看雪注册了好长时间,最近才发现是个临时会员,纠结!(第一次发帖)

思路:

1. 根据网站数据库的设计,生成静态页面与目录的配对数组

2.把生成的静态页面与目录的配对数组系列化写入一个文件

3.读取系列化的配对数组文件,把动态页面静态化

4.如果静态化失败,创建一个文件(相当于缓存),记录失败的位置,刷新之后,从失败的位置开始继续生成静态页面直至完成

静态页面与目录的配对数组结构($aUrl2Dir):


程序如下:<?php 
/* 
*$sFailFileName:记录失败位置的文件名 
*$aUrl2Dir:静态页面与目录的配对数组 
*/
function makeHtml($sFailFileName, $aUrl2Dir) { 
              
              if(!file_exists($sFailFileName)) {  

                      foreach($aUrl2Dir as $iKey=>$aUrl2DirDetail) { 
                   
                                  $aFailPosition = array();                         
                                  $aFailPosition[$iKey]['url'] = $aUrl2DirDetail['url']; 
                                  $aFailPosition[$iKey]['dir'] = $aUrl2DirDetail['dir']; 
                                  $sFailPosition = serialize($aFailPosition); 
                                  file_put_contents("$sFailFileName", $sFailPosition); 
                                  $sContent = file_get_contents("$aUrl2DirDetail[url]"); 
                                  file_put_contents("$aUrl2DirDetail[dir]", $sContent); 
                                  if($iKey == count($aUrl2Dir)-1) { 
                    
                                              echo ($iKey+1) . "products documents created!";
                                              exit(0); 
                                  } 
                        }
               } else {
                            $sFailPositionContent = file_get_contents("$sFailFileName"); 
                            $aFailPositionArr = unserialize($sFailPositionContent); 
                            $iKey = 0; 
                            foreach($aFailPositionArr as $iFailKey=>$aFailArr) 
                                         $iKey = $iFailKey; 
                            for($i=$iKey; $i<count($aUrl2Dir); $i++) { 
                                         $aFailPosition = array(); 
                                         $aFailPosition[$i]['url'] = $aUrl2Dir[$i]['url']; 
                                         $aFailPosition[$i]['dir'] = $aUrl2Dir[$i]['dir']; 
                                         $sFailPosition = serialize($aFailPosition); 
                                         file_put_contents("$sFailFileName", $sFailPosition); 
                                         $sURL = $aUrl2Dir[$i]['url']; 
                                         $sDIR = $aUrl2Dir[$i]['dir']; 
                                         $sContent = file_get_contents($sURL); 
                                         file_put_contents($sDIR, $sContent); 
                                         if($iKey == count($aUrl2Dir)-1) { 

                                                    echo ($iKey+1) . "products documents created!"; 
                                                    exit(0); 
                                          }
                              }
               }
}
?>

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
图裂开了。
文字补丁。
2010-12-1 09:00
0
游客
登录 | 注册 方可回帖
返回
//