免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2110 | 回复: 2
打印 上一主题 下一主题

发一个生成静态页面的类 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-10 11:09 |只看该作者 |倒序浏览
从网上找了一个类,有些错误,做了些修正,共享出来,希望对大家有点帮助


  1. <?php
  2. /*****************************************

  3. 生成静态页面的类

  4. ******************************************/

  5. class Html
  6. {
  7.         var $dir; //dir for the htmls(without/)
  8.         var $rootdir; //root of html files(without/):html
  9.         var $name; //html文件存放路径
  10.         var $dirname; //指定的文件夹名称
  11.         var $url; //获取html文件信息的来源网页地址
  12.         var $time; //html文件信息填加时的时间
  13.         var $dirtype; //目录存放方式:year,month,,,,
  14.         var $nametype; //html文件命名方式:name

  15.         function Html($nametype='name',$dirtype='day',$rootdir='html')
  16.         {
  17.                 $this->nametype = $nametype;
  18.                 $this->dirtype = $dirtype;
  19.                 $this->rootdir = $rootdir;
  20.         }

  21.         function __construct($nametype='name',$dirtype='day',$rootdir='html')
  22.         {
  23.                 self::Html($nametype,$dirtype,$rootdir);
  24.         }


  25.         function setvar($nametype='name',$dirtype='day',$rootdir='html')
  26.         {
  27.                 self::Html($nametype='name',$dirtype='day',$rootdir='html');
  28.         }

  29.         /**
  30.          *生成文件夹
  31.          *
  32.          */
  33.         function createdir($dir='')
  34.         {
  35.                 $this->dir=$dir?$dir:$this->dir;
  36.                
  37.                 if (!is_dir($this->dir))
  38.                 {
  39.                         $temp = explode('/',$this->dir);
  40.                         $cur_dir = '';
  41.                        
  42.                         for($i=0;$i<count($temp); $i++)
  43.                         {
  44.                                 $cur_dir .= $temp[$i].'/';
  45.                         }

  46.                         if (!is_dir($cur_dir))
  47.                         {
  48.                                 if(!is_dir($this->rootdir))
  49.                                 {
  50.                                         mkdir($this->rootdir, 0700);
  51.                                 }
  52.                                 mkdir($cur_dir, 0700);
  53.                         }
  54.                 }
  55.         }
  56.        
  57.         /**
  58.          *返回文件夹名称
  59.          */
  60.         function getdir($dirname='',$time=0)
  61.         {
  62.                 $this->time=$time?$time:$this->time;
  63.                 $this->dirname=$dirname?$dirname:$this->dirname;

  64.                 switch($this->dirtype)
  65.                 {
  66.                        
  67.                         case 'year':
  68.                                 $this->dir=$this->rootdir.'/'.date("Y",$this->time);
  69.                                 break;

  70.                         case 'month':
  71.                                 $this->dir=$this->rootdir.'/'.date("Y-m",$this->time);
  72.                                 break;

  73.                         case 'day':
  74.                                 $this->dir=$this->rootdir.'/'.date("Y-m-d",$this->time);
  75.                                 break;
  76.                        
  77.                         default :
  78.                                 if(empty($this->dirname))
  79.                                 {
  80.                                         $this->dir=$this->rootdir;
  81.                                 }
  82.                                 else
  83.                                 {
  84.                                         $this->dir=$this->rootdir.'/'.$this->dirname;
  85.                                 }

  86.                 }

  87.                 $this->createdir();

  88.                 return $this->dir;
  89.         }

  90.         function geturlname($url='')
  91.         {
  92.                 $this->url=$url?$url:$this->url;

  93.                 $filename=basename($this->url);
  94.                 $filename=explode(".",$filename);
  95.                 return $filename[0];
  96.         }

  97.         function geturlquery($url='')
  98.         {
  99.                 $this->url=$url?$url:$this->url;

  100.                 $durl=parse_url($this->url);
  101.                 $durl=explode("&",$durl[query]);
  102.                
  103.                 return join("_",$durl);
  104.         }

  105.         function getname($url='',$time=0,$dirname='')
  106.         {
  107.                 $this->url=$url?$url:$this->url;
  108.                 $this->dirname=$dirname?$dirname:$this->dirname;
  109.                 $this->time=$time?$time:$this->time;

  110.                 $this->getdir();

  111.                 switch($this->nametype)
  112.                 {
  113.                         case 'name':
  114.                                 $filename=$this->geturlname().'.htm';
  115.                                 $this->name=$this->dir.'/'.$filename;        
  116.                                 break;
  117.                        
  118.                         case 'time':
  119.                                 $this->name=$this->dir.'/'.$this->time.'.htm';
  120.                                 break;

  121.                         case 'query':
  122.                                 $this->name=$this->dir.'/'.$this->geturlquery().'.htm';
  123.                                 break;

  124.                         case 'namequery':
  125.                                 $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->geturlquery().'.htm';
  126.                                 break;

  127.                         default : //nametime
  128.                                 $this->name=$this->dir.'/'.$this->geturlname().'-'.$this->time.'.htm';                

  129.                 }
  130.                
  131.                 return $this->name;
  132.         }

  133.         function createhtml($url='',$time=0,$dirname='',$htmlname='')
  134.         {
  135.                 $this->url=$url?$url:$this->url;
  136.                 $this->dirname=$dirname?$dirname:$this->dirname;
  137.                 $this->time=$time?$time:$this->time;
  138.                 //上面保证不重复地把变量赋予该类成员
  139.                
  140.                 if(empty($htmlname))
  141.                 {
  142.                         $this->getname();
  143.                 }
  144.                 else
  145.                 {
  146.                         $this->name=$dirname.'/'.$htmlname; //得到name
  147.                 }

  148.                 $content=file($this->url) or die("Failed to open the url ".$this->url." !");;



  149.                 $content=join("",$content);
  150.                 $fp=@fopen($this->name,"w") or die("Failed to open the file ".$this->name." !");
  151.                 if(@fwrite($fp,$content))
  152.                 {
  153.                         return true;
  154.                 }
  155.                 else
  156.                 {
  157.                         return false;
  158.                 }
  159.                 fclose($fp);
  160.         }


  161.         function deletehtml($url='',$time=0,$dirname='')
  162.         {
  163.                 $this->url=$url?$url:$this->url;
  164.                 $this->time=$time?$time:$this->time;

  165.                 $this->getname();

  166.                 if(@unlink($this->name))
  167.                 {
  168.                         return true;
  169.                 }
  170.                 else
  171.                 {
  172.                         return false;
  173.                 }
  174.         }

  175.         /**
  176.          * function::deletedir()
  177.          * 删除目录
  178.          * @param $file 目录名(不带/)
  179.          * @return  
  180.          */
  181.         function deletedir($file)
  182.         {
  183.                 if(file_exists($file))
  184.                 {
  185.                         if(is_dir($file))
  186.                         {
  187.                                 $handle =opendir($file);
  188.                                 while(($filename=readdir($handle)) != false)
  189.                                 {
  190.                                         closedir($handle);
  191.                                 }
  192.                                 rmdir($file);
  193.                                 return true;
  194.                         }
  195.                         else
  196.                         {
  197.                                 return false;
  198.                         }
  199.                 }

  200.         }
  201. }
  202. ?>
复制代码

论坛徽章:
0
2 [报告]
发表于 2007-05-10 17:23 |只看该作者
顶一下,然后再看

论坛徽章:
0
3 [报告]
发表于 2007-05-28 20:05 |只看该作者

这个怎么使用呀?

有没有使用的范例???
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP