生成静态页面的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 相关文章推荐
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php实现字符串首字母大写和单词首字母大写的方法
Mar 14 PHP
PHP验证信用卡卡号是否正确函数
May 27 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 PHP
程序员的表白神器“520”大声喊出来
May 20 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
phpquery中文手册
Mar 18 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 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
JS按回车键实现登录的方法
2014/08/25 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
JQuery常用选择器功能与用法实例分析
2019/12/23 jQuery
python发送邮件接收邮件示例分享
2014/01/21 Python
Python中自定义函数的教程
2015/04/27 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
python django生成迁移文件的实例
2019/08/31 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
大专学生推荐信范文
2013/11/19 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
设备管理实施方案
2014/05/31 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
市场营销计划书
2015/01/17 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
呐喊读书笔记
2015/06/30 职场文书
聘任书格式及范文
2015/09/21 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers