广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    生成静态页面的PHP类

    2018-05-08 11:29:09 次阅读 稿源:互联网
    零七广告

    代码如下:
    <?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;$i<count($temp);$i++) 
                { 
                    $cur_dir .= $temp[$i].'/'; 
                    if (!is_dir($cur_dir)) 
                    { 
                    @mkdir($cur_dir,0777); 
                    } 
                } 
            } 
        } 

        function getdir($dirname='',$time=0) 
        { 
            $this->time=$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); 
                } 
            } 
        } 


    ?>

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告