生成静态页面的PHP类_PHP编程

复制代码 代码如下:

<?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); 
            } 
        } 
    } 


?>

时间: 2024-09-20 10:33:14

生成静态页面的PHP类_PHP编程的相关文章

生成静态页面的PHP类_php基础

复制代码 代码如下: <?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 $di

基于PHP生成静态页的实现方法_php实例

t1.php 复制代码 代码如下: <?php// 方法一根据模版生成静态页面// replaceTemplateString函数用于替换模板中指定字符串function replaceTemplateString($templateString) {    // 用来替换的变量    $title = "文章标题";    $body = "这里是文章主体";    // 替换模板中指定字符串    $showString = str_replace ( &

生成静态页面的php函数,php爱好者站推荐_php技巧

复制代码 代码如下: <?php  function CreateShtml()  {  ob_start("callback_CteateShtml");  }  function callback_CteateShtml($buffer)  {  $page = intval(@$_REQUEST["page"]);  //$fileName = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF'

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

Web开发源代码: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,,,, va

JSP生成静态页实践及其设计思想[转]_JSP编程

引子:我们以两个大型网站为例作比较:51job和智联招聘(先声明我不是为他们作广告,仅以他们为例作技术上的比较)51job采用的是比较"先进"的php技术,而智联用的是比较落后的asp.但我们可能会明显的感觉到51job的反应速度相比智联招聘实在是太慢了,为什么会这样?细心的人可能会察觉到了.智联虽然用的是asp,但他采用了另一种更巧妙的技术--asp生成静态页技术.所有的动态页基本上都转换成了html静态页,不用访问数据库,当然反应快了.下面我们讨论一下jsp怎么转换成html??首

CodeIgniter生成静态页的方法_php实例

本文实例讲述了CodeIgniter生成静态页的方法.分享给大家供大家参考,具体如下: 现在我们来开发如何让CI框架生成静态页面.下面直接帖代码: $this->output->get_output(); 使用这个方法,你可以可以得到将要输出的数据,并把它保存起来,留着它用(我们做新闻类型网站的时候,常常需要生成静态的HTML文件). $string = $this->output->get_output(); $this->load->helper('file');

ASP.NET MVC使用RazorEngine解析模板生成静态页_实用技巧

简述       Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.在早期的MVC版本中默认使用的是ASPX模板引擎,Razor在语法上的确不错,用起来非常方便,简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目.       我们在很多项目开发中会常常用到页面静态化,页面静态化有许多方式,最常见的就是类似很多PHP CMS种使用的 标签替换的方式(如:帝国CMS.EcShop等),还有很多都是伪静态,伪静态我们就不做过

asp.net 生成静态页时的进度条显示_实用技巧

asp.net如何生成静态页,请参考下面的文章:http://www.jb51.net/article/18175.htm而我们用模拟的话,只需要让线程延迟执行就可以了.比如下面的代码: 复制代码 代码如下: for (int i = 0; i < 10; i++) { DateTime startTime = DateTime.Now; Response.Write(i + "-------------执行时间:" + startTime.ToString()+"&l