生成静态页面的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 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
php&amp;java(三)
Oct 09 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
php中session退出登陆问题
Feb 27 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
Jun 30 PHP
PHP中trim()函数简单使用指南
Apr 16 PHP
简单概括PHP的字符串中单引号与双引号的区别
May 07 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
php 的反射详解及示例代码
Aug 25 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 PHP
php文件后缀不强制为.php的实操方法
Sep 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
SONY ICF-SW7600的电路分析
2021/03/02 无线电
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
php set_time_limit()函数的使用详解
2013/06/05 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
如何利用http协议发布博客园博文评论
2015/08/03 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP文件操作详解
2016/12/30 PHP
php和nginx交互实例讲解
2019/09/24 PHP
javascript 常用功能总结
2012/03/18 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
解决vue2中使用elementUi打包报错的问题
2020/09/22 Javascript
pthon贪吃蛇游戏详细代码
2019/01/27 Python
python装饰器常见使用方法分析
2019/06/26 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
Python新手学习标准库模块命名
2020/05/29 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
年会活动策划方案
2014/01/23 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
中学生学习保证书
2015/02/26 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python