一個php產生html類程式

來源:互聯網
上載者:User

*/

 代碼如下 複製代碼

class template
{
var $temp;               //讀取的模板頁檔案名稱(包含路徑)
var $html;               //要產生的html檔案名稱(包含路徑)
var $err;                //錯誤編號
var $test;               //資料流
var $arr;                 //要替換的數組 模式(鍵名->模板標籤 , 索引值->替換內容)

  function template()
   {
   $this->temp="";              
      $this->html="";              
      $this->err=0;               
      $this->test="";              
   }

   function templatehtml($temp,$html,$arr)
   {
  $err=$this->chkfile($temp);
  if((int)$err==0)
  {
         $fp=fopen($temp,"r");                       //唯讀方式開啟模板頁
      $test=fread($fp,filesize($temp));          //讀模數板頁的資料流
      $test=$this->arr_replace($arr,$test);             //替換檔案    
         $err=$this->writefile($html,$test);               //產生靜態頁
  }
      echo "由模板頁 ".$temp." 產生 ".$html.$this->error($err);
   return;
   }    

/*
*判斷檔案是否存在
*返回錯誤提示
*/

function chkfile($file)
{
 if (file_exists($file))
 {
  return 0;
 }
 return 1;
}
  
/*
*根據數組檔案內容,替換資料流  模式(鍵名->模板標籤 , 索引值->替換內容)
*返回資料流
*參數$arr:數組
*參數$test :資料流
*/ 
   function arr_replace($arr,$test)
   {
      $ss=$test;
      foreach ($arr as $key => $value)
   {
   $ss= str_replace($key,$value,$ss);
   }
      return $ss;
   }
    
/*
*將資料流,寫入到檔案中
*返回執行狀態
*參數$html:要產生的html檔案
*參數$test :資料流
*/    
   function writefile($html,$test)
   {
      $stat=2;
      if($this->chkfile($html)==0)  //判斷檔案是否存在
   {
      $stat=0;                   //已經存在返回0
   }
  
      if($f=fopen($html,"w"))      //寫入方式開啟檔案,不存在則建立
   {
       fputs($f,$test);
    fclose($f);
       $stat=0;                //寫入成功返回0
   }
   else
   {
       $stat=2;               //寫入失敗返回2
   }
      return $stat;
   }
/*
*錯誤提示
*返回錯誤提示
*參數$err:錯誤編號
*參數$file :錯誤檔案
*/   
function error($err)
{
    $message="";
 switch((int)$err)
 {
 case 0 :
  $message=" 靜態頁產生成功";
  break;
 case 1 :
  $message=" 模板頁開啟失敗,請檢查是否存在";
  break;
 case 2 :
  $message=" 檔案產生失敗,請檢查目錄許可權";
  break;
 default:
  $message=" 未知錯誤";
 }
 return $message;
}
 
/*
*
*主要用來讀模數板頁,返回資料流  (比如top,foot公用檔案,)
*參數$file :模板頁路徑
*/
 
function readhtml($file)
{
   $test="";
   $err=$this->chkfile($file);
   if($err==0)
   {
      $fp=fopen($file,"r");                       //唯讀方式開啟模板頁
      $test=fread($fp,filesize($file));          //讀模數板頁的資料流
   }
   else
   {
      $test=$file.$this->error($err);
   }
  
   return $test;

}

/*
*
*主要用來刪除已產生的檔案,不返回
*參數$file :檔案路徑
*/

function delete_file($file)
{
    if (file_exists($file))
    {
        $delete = chmod ($file, 0777);
        $delete = unlink($file);
        if(file_exists($file))
        {
            $filesys = eregi_replace("/","",$file);
            $delete = system("del $filesys");
            clearstatcache();
            if(file_exists($file))
            {
                $delete = chmod ($file, 0777);
                $delete = unlink($file);
                $delete = system("del $filesys");
            }
        }
        clearstatcache();
    }
}
  
}

/*
調用方法

demo.html的代碼
<html>
<head><title>{title}</title></head>
<body>{text}</body>
<html>


$sc=new template();
//$sc=new template($tmp,$filename,$arr);   ()

$tmp="../template/temp.php教程";    //模板頁
$filename="test.html";          //產生頁
$foot="../foot.html";           //包含的底檔案,標頭檔同理

$arr=array();
$arr["{title}"]="新標題";
$arr["{text}"]="新內容";
$arr["{foot}"]=$sc->readhtml($foot);

 

$sc->templatehtml($tmp,$filename,$arr);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.