关于我们┊AboutMe

昵称:Hopol(■童■)

联系:QQ:18883

邮箱:info(at)18883.com

主页:www.18883.com

手机浏览 日志归档 RSS 2.0 订阅
Register | Login

生成静态页面的PHP类

<?php
class html
{
     var 
$dir;             //dir for the htmls(without/)
     
var $rootdir;     //root of html files(without/):html
     
var $name;         //html文件存放路径
     
var $dirname;     //指定的文件夹名称
     
var $url;             //获取html文件信息的来源网页地址
     
var $time;         //html文件信息填加时的时间
     
var $dirtype;     //目录存放方式:year,month,,,,
     
var $nametype;     //html文件命名方式:name
    
     
function html($nametype='name',$dirtype='year',$rootdir='html')
     {
             
$this->setvar($nametype,$dirtype,$rootdir);
     }
             
     function 
setvar($nametype='name',$dirtype='year',$rootdir='html')
     {
         
$this->rootdir=$rootdir;
         
$this->dirtype=$dirtype;
         
$this->nametype=$nametype;
     }
    
     function 
createdir($dir='')
     {
             
$this->dir=$dir?$dir:$this->dir;
    
             if (!
is_dir($this->dir))
             {
                 
$temp explode('/',$this->dir);
                 
$cur_dir '';
                 for(
$i=0;$i<count($temp);$i++)
                 {
                     
$cur_dir .= $temp[$i].'/';
                     if (!
is_dir($cur_dir))
                     {
                     @
mkdir($cur_dir,0777);
                     }
                 }
             }
     }
    
     function 
getdir($dirname='',$time=0)
     {
             
$this->time=$time?$time:$this->time;
             
$this->dirname=$dirname?$dirname:$this->dirname;
    
             switch(
$this->dirtype)
             {
             case 
'name':
             if(empty(
$this->dirname))
                 
$this->dir=$this->rootdir;
             else
                 
$this->dir=$this->rootdir.'/'.$this->dirname;
             break;
             case 
'year':
             
$this->dir=$this->rootdir.'/'.date("Y",$this->time);
             break;
    
             case 
'month':
             
$this->dir=$this->rootdir.'/'.date("Y-m",$this->time);
             break;
    
             case 
'day':
             
$this->dir=$this->rootdir.'/'.date("Y-m-d",$this->time);
             break;
             }
    
             
$this->createdir();
    
             return 
$this->dir;
     }
    
     function 
geturlname($url='')
     {
             
$this->url=$url?$url:$this->url;
    
             
$filename=basename($this->url);
             
$filename=explode(".",$filename);
             return 
$filename[0];
     }
    
     function 
geturlquery($url='')
     {
             
$this->url=$url?$url:$this->url;
    
             
$durl=parse_url($this->url);
             
$durl=explode("&",$durl[query]);
             foreach(
$durl as $surl)
             {
             
$gurl=explode("=",$surl);
             
$eurl[]=$gurl[1];
             }
             return 
join("_",$eurl);
     }
    
     function 
getname($url='',$time=0,$dirname='')
     {
             
$this->url=$url?$url:$this->url;
             
$this->dirname=$dirname?$dirname:$this->dirname;
             
$this->time=$time?$time:$this->time;
    
             
$this->getdir();
    
             switch(
$this->nametype)
             {
             case 
'name':
             
$filename=$this->geturlname().'.htm';
             
$this->name=$this->dir.'/'.$filename;
             break;
    
             case 
'time':
             
$this->name=$this->dir.'/'.$this->time.'.htm';
             break;
    
             case 
'query':
             
$this->name=$this->dir.'/'.$this->geturlquery().'.htm';
             break;
    
             case 
'namequery':
             
$this->name=$this->dir.'/'.$this->geturlname().'-'.$this->geturlquery().'.htm';
             break;
    
             case 
'nametime':
             
$this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.htm';
             break;
    
             }
             return 
$this->name;
     }
    
     function 
createhtml($url='',$time=0,$dirname='',$htmlname='')
     {
             
$this->url=$url?$url:$this->url;
             
$this->dirname=$dirname?$dirname:$this->dirname;
             
$this->time=$time?$time:$this->time;
         
//上面保证不重复地把变量赋予该类成员
             
if(empty($htmlname))
                 
$this->getname();
             else
                 
$this->name=$dirname.'/'.$htmlname;     //得到name
    
             
$content=file($this->url) or die("Failed to open the url ".$this->url." !");;
    
///////////////关键步---用file读取$this->url
    
    
             
$content=join("",$content);
             
$fp=@fopen($this->name,"w") or die("Failed to open the file ".$this->name." !");
             if(@
fwrite($fp,$content))
             return 
true;
             else
             return 
false;
             
fclose($fp);
     }
/////////////////以name为名字生成html
    
     
function deletehtml($url='',$time=0,$dirname='')
     {
             
$this->url=$url?$url:$this->url;
             
$this->time=$time?$time:$this->time;
    
             
$this->getname();
    
             if(@
unlink($this->name))
             return 
true;
             else
             return 
false;
     }
    
     
/**
         * function::deletedir()
         * 删除目录
         * @param $file 目录名(不带/)
         * @return 
         */
         
function deletedir($file)
         {
             if(
file_exists($file))
             {
                 if(
is_dir($file))
                 {
                     
$handle =opendir($file);
                     while(
false!==($filename=readdir($handle)))
                     {
                             if(
$filename!="."&&$filename!="..")
                             
$this->deletedir($file."/".$filename);
                     }
                     
closedir($handle);
                     
rmdir($file);
                     return 
true;
                 }else{
                     
unlink($file);
                 }
             }
     }
    
}
?>

Tags: 生成静态, php,

« 上一篇 | 下一篇 »

只显示10条记录相关文章

dede5.1 UTF8商业版 (浏览: 232, 评论: 1)
dede5.1 BGK商业版 (浏览: 256, 评论: 0)
MyPic图片管理系统 (浏览: 162, 评论: 0)
PHP 美女写真 Cms (浏览: 208, 评论: 0)
Google translator API ( PHP 5 class ) (浏览: 193, 评论: 0)
MyPic v1.0 (MyPic图片管理系统) (浏览: 289, 评论: 0)
PHP在图片上写上中文[备份] (浏览: 206, 评论: 0)
DEDECMS 模板收藏 【极限资讯网】 (浏览: 497, 评论: 0)
DEDECMS 模板收藏 【CK女性站】 (浏览: 497, 评论: 0)
DEDECMS 模板收藏 【淡蓝色完整风格V1.1】 (浏览: 502, 评论: 0)

发表评论