下一篇 »« 上一篇提示:鼠标放在图片上用鼠标中键即可控制图片大小

文章标题:PHP静态类1

作者:    时间:2008-04-07    翻译网站:    点击:39897    本文共1篇文章
发表评论 | 查看评论 | 加入收藏 | Email给朋友 | 打印本文 | 字体:[ ]

PHP代码
  1. <?php   
  2. class html {   
  3.     var $dir//dir for the htmls(without/)   
  4.     var $rootdir//root of html files(without/):html   
  5.     var $name//html文件存放路径   
  6.     var $dirname//指定的文件夹名称   
  7.     var $url//获取html文件信息的来源网页地址   
  8.     var $time//html文件信息填加时的时间   
  9.     var $dirtype//目录存放方式:year,month,,,,   
  10.     var $nametype//html文件命名方式:name   
  11.   
  12.     function html($nametype='name',$dirtype='year',$rootdir='html') {   
  13.         $this->setvar($nametype,$dirtype,$rootdir);   
  14.     }   
  15.   
  16.     function setvar($nametype='name',$dirtype='year',$rootdir='html'){   
  17.         $this->rootdir=$rootdir;   
  18.         $this->dirtype=$dirtype;   
  19.         $this->nametype=$nametype;   
  20.     }   
  21.   
  22.     function createdir($dir='') {   
  23.         $this->dir=$dir?$dir:$this->dir;   
  24.   
  25.         if (!is_dir($this->dir)) {   
  26.             $temp = explode('/',$this->dir);   
  27.             $cur_dir = '';   
  28.             for($i=0;$i<count($temp);$i++) {   
  29.                 $cur_dir .= $temp[$i].'/';   
  30.                 if (!is_dir($cur_dir)) {   
  31.                     @mkdir($cur_dir,0777);   
  32.                 }   
  33.             }   
  34.         }   
  35.     }   
  36.   
  37.     function getdir($dirname='',$time=0) {   
  38.         $this->time=$time?$time:$this->time;   
  39.         $this->dirname=$dirname?$dirname:$this->dirname;   
  40.   
  41.         switch($this->dirtype) {   
  42.             case 'name':   
  43.                 if(emptyempty($this->dirname))   
  44.                 $this->dir=$this->rootdir;   
  45.                 else  
  46.                 $this->dir=$this->rootdir.'/'.$this->dirname;   
  47.                 break;   
  48.             case 'year':   
  49.                 $this->dir=$this->rootdir.'/'.date("Y",$this->time);   
  50.                 break;   
  51.             case 'month':   
  52.                 $this->dir=$this->rootdir.'/'.date("Y-m",$this->time);   
  53.                 break;   
  54.             case 'day':   
  55.                 $this->dir=$this->rootdir.'/'.date("Y-m-d",$this->time);   
  56.                 break;   
  57.         }   
  58.         $this->createdir();   
  59.         return $this->dir;   
  60.     }   
  61.   
  62.     function geturlname($url='') {   
  63.         $this->url=$url?$url:$this->url;   
  64.   
  65.         $filename=basename($this->url);   
  66.         $filename=explode(".",$filename);   
  67.         return $filename[0];   
  68.     }   
  69.   
  70.     function geturlquery($url='') {   
  71.         $this->url=$url?$url:$this->url;   
  72.   
  73.         $durl=parse_url($this->url);   
  74.         $durl=explode("&",$durl[query]);   
  75.         foreach($durl as $surl) {   
  76.             $gurl=explode("=",$surl);   
  77.             $eurl[]=$gurl[1];   
  78.         }   
  79.         return join("_",$eurl);   
  80.     }   
  81.   
  82.     function getname($url='',$time=0,$dirname='') {   
  83.         $this->url=$url?$url:$this->url;   
  84.         $this->dirname=$dirname?$dirname:$this->dirname;   
  85.         $this->time=$time?$time:$this->time;   
  86.   
  87.         $this->getdir();   
  88.   
  89.         switch($this->nametype) {   
  90.             case 'name':   
  91.             $filename=$this->geturlname().'.htm';   
  92.             $this->name=$this->dir.'/'.$filename;   
  93.             break;   
  94.             case 'time':   
  95.             $this->name=$this->dir.'/'.$this->time.'.htm';   
  96.             break;   
  97.             case 'query':   
  98.             $this->name=$this->dir.'/'.$this->geturlquery().'.htm';   
  99.             break;   
  100.             case 'namequery':   
  101.             $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->geturlquery().'.htm';   
  102.             break;   
  103.             case 'nametime':   
  104.             $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.htm';   
  105.             break;   
  106.         }   
  107.         return $this->name;   
  108.     }   
  109.   
  110.     function createhtml($url='',$time=0,$dirname='',$htmlname='') {   
  111.         $this->url=$url?$url:$this->url;   
  112.         $this->dirname=$dirname?$dirname:$this->dirname;   
  113.         $this->time=$time?$time:$this->time;   
  114.         //上面保证不重复地把变量赋予该类成员   
  115.         if(emptyempty($htmlname))   
  116.             $this->getname();   
  117.         else  
  118.             $this->name=$dirname.'/'.$htmlname//得到name   
  119.   
  120.         $content=file($this->url) or die("Failed to open the url ".$this->url." !");;   
  121.   
  122.         ///////////////关键步---用file读取$this->url   
  123.   
  124.         $content=join("",$content);   
  125.         $fp=@fopen($this->name,"w"or die("Failed to open the file ".$this->name." !");   
  126.         if(@fwrite($fp,$content))   
  127.         return true;   
  128.         else  
  129.         return false;   
  130.         fclose($fp);   
  131.     }   
  132.     /////////////////以name为名字生成html   
  133.   
  134.     function deletehtml($url='',$time=0,$dirname='') {   
  135.         $this->url=$url?$url:$this->url;   
  136.         $this->time=$time?$time:$this->time;   
  137.   
  138.         $this->getname();   
  139.   
  140.         if(@unlink($this->name))   
  141.             return true;   
  142.         else  
  143.             return false;   
  144.     }   
  145.   
  146.     /**  
  147.     * function::deletedir()  
  148.     * 删除目录  
  149.     * @param $file 目录名(不带/)  
  150.     * @return  
  151.     */  
  152.     function deletedir($file) {   
  153.         if(file_exists($file)) {   
  154.             if(is_dir($file)) {   
  155.                 $handle =opendir($file);   
  156.                 while(false!==($filename=readdir($handle))) {   
  157.                     if($filename!="."&$filename!="..")   
  158.                     $this->deletedir($file."/".$filename);   
  159.                 }   
  160.                 closedir($handle);   
  161.                 rmdir($file);   
  162.                 return true;   
  163.             }else{   
  164.                 unlink($file);   
  165.             }   
  166.         }   
  167.     }   
  168. }   
  169. ?>  
责任编辑:semirock
发表评论
密码: (游客不需要密码)
记住我【Alt+S 或 Ctrl+Enter 快速提交】