生成静态页面的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 相关文章推荐
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 PHP
PHP中其实也可以用方法链
Nov 10 PHP
php获取通过http协议post提交过来xml数据及解析xml
Dec 16 PHP
深入phpMyAdmin的安装与配置的详细步骤
May 07 PHP
php简单浏览目录内容的实现代码
Jun 07 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
Laravel实现用户注册和登录
Jan 23 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
Jul 03 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
PHP源码之explode使用说明
2011/08/05 PHP
提高php运行速度的一些小技巧分享
2012/07/03 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
js 验证密码强弱的小例子
2013/03/21 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
js实现简单扫雷
2020/11/27 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
python实现n个数中选出m个数的方法
2018/11/13 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
python实现快递价格查询系统
2020/03/03 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
实习单位接收函模板
2014/01/10 职场文书
金融专业毕业生自荐信
2014/06/26 职场文书
安全施工责任书
2014/08/25 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang