生成静态页面的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); 
                 } 
             } 
     } 
     

?>

« 上一篇 | 下一篇 »
只显示10条记录相关文章
php header 跳转 (浏览: 451, 评论: 0)
定时清理旧的log文件 (浏览: 1806, 评论: 1)
FIREFOX取动态input值 (浏览: 1158, 评论: 0)
用css方式巧妙保护邮箱地址 (浏览: 1183, 评论: 0)
PHP5_OOP面向对象---教程下载 (浏览: 2299, 评论: 0)
vc++中用ado连接oracle数据库 (浏览: 4173, 评论: 0)
在DISDUZ!5.5中添加代码高亮插件成功 (浏览: 3123, 评论: 1)
xajax+php的一个DEMO--Blackjack(21点) (浏览: 3503, 评论: 3)
关于使用PHP6的感受 (浏览: 2736, 评论: 0)
[PHP AJAX] 简单比较 xajax、AJASON、flxAJAX、Aja... (浏览: 2712, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容(*):