生成静态页面的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 相关文章推荐
PHP+MYSQL的文章管理系统(一)
Oct 09 PHP
ThinkPHP php 框架学习笔记
Oct 30 PHP
php microtime获取浮点的时间戳
Feb 21 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
php自定义的格式化时间示例代码
Dec 05 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
php实现学生管理系统
Mar 21 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
在laravel中实现事务回滚的方法
Oct 10 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
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
php筛选不存在的图片资源
2015/04/28 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
如何让动态插入的javascript脚本代码跑起来。
2007/01/09 Javascript
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
python里对list中的整数求平均并排序
2014/09/12 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Python实现朴素贝叶斯分类器的方法详解
2018/07/04 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
Python hashlib模块加密过程解析
2019/11/05 Python
django model通过字典更新数据实例
2020/04/01 Python
对python中list的五种查找方法说明
2020/07/13 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
毕业生见习报告总结
2014/11/08 职场文书
安全先进班组材料
2014/12/26 职场文书