生成静态页面的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 相关文章推荐
在PHP3中实现SESSION的功能(二)
Oct 09 PHP
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
Wordpress php 分页代码
Oct 21 PHP
php 模拟POST|GET操作实现代码
Jul 20 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
php设计模式小结
Feb 15 PHP
destoon供应信息title调用出公司名称的方法
Aug 22 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
基于swoole实现多人聊天室
Jun 14 PHP
php如何获取Http请求
Apr 30 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 PHP
PHP与Web页面交互操作实例分析
Jun 02 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
php图片上传类 附调用方法
2016/05/15 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
JavaScript RegExp 对象用法详解
2019/09/24 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
pycharm+django创建一个搜索网页实例代码
2018/01/24 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
python matplotlib库绘制条形图练习题
2019/08/10 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
药学专业大学生个人的自我评价
2013/11/04 职场文书
大学生学业生涯规划
2014/01/05 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
创业计划书之面包店
2019/09/17 职场文书
python状态机transitions库详解
2021/06/02 Python
基于JavaScript实现省市联动效果
2021/06/22 Javascript
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
MySQL基于索引的压力测试的实现
2021/11/07 MySQL