生成静态页面的PHP类


Posted in PHP onJuly 15, 2006
<?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;$itime=$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);  
            }  
        }  
    }  
}  
?>

 

PHP 相关文章推荐
第六节--访问属性和方法
Nov 16 PHP
谈谈新手如何学习PHP 默默经典版本
Aug 04 PHP
PHP用mysql数据库存储session的代码
Mar 05 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
win7下memCache的安装过程(具体操作步骤)
Jun 28 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
php之static静态属性与静态方法实例分析
Jul 30 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
php装饰者模式简单应用案例分析
Oct 23 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 PHP
删除无限级目录与文件代码共享
Jul 12 #PHP
PHP截取中文字符串的问题
Jul 12 #PHP
最令PHP初学者头痛的十四个问题
Jul 12 #PHP
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
Jul 09 #PHP
PHP初学者头疼问题总结
Jul 08 #PHP
php分页函数
Jul 08 #PHP
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 #PHP
You might like
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
利用PHP抓取百度阅读的方法示例
2016/12/18 PHP
php+croppic.js实现剪切上传图片功能
2018/08/14 PHP
js表数据排序 sort table data
2009/02/18 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
2016/12/01 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
vue2.X组件学习心得(新手必看篇)
2017/07/05 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
使用PDB简单调试Python程序简明指南
2015/04/25 Python
python+ffmpeg批量去视频开头的方法
2019/01/09 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
公司培训心得体会
2014/01/03 职场文书
农村党支部先进事迹
2014/01/14 职场文书
工作自我评价怎么写
2014/01/29 职场文书
社区党建工作方案
2014/06/10 职场文书
父母教会我观后感
2015/06/17 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
2016优秀班主任个人先进事迹材料
2016/02/26 职场文书
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL