PHP實現靜態發布的方法淺談_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:PHP技術進階 用PHP處理多個同名復選框
      如果一個表單中有多個同名復選框,在提交到php時卻只有一個值,而并不像asp那樣是一串用逗號分割的值。有一個很簡單的方法來解決:將復選框的name后面加上[],例如:<input type="check

      如今很多網站都是靜態發布的,PHP當然也可以方便的實現靜態發布嘍,具體的實現方法很多,下面我就說說我會的兩種方法。

      方法一:ob_get_contents()

      這是一種很方便的方法,也是很常用的方法,實現原理是:首先打開緩存,然后創建相應的靜態頁文件,寫入緩存的內容,清空緩存。

      示例:

      <?php
      ob_strart();#打開緩沖區
      $fn=date('ymdhis').rand(1000,9999).'html';//生成文件名
      require("supply.php");#載入要生成靜態頁的文件,因為后臺有ob_clen()所以在不會顯示出來
      $fs=fopen($fn,'w');#打開靜態頁文件
      fwrite($fs,ob_get_contents());#生成靜態文件
      ob_clean();#清空緩存
      ?>

      方法二:file_get_contents();

      <?php
      $fn=date('ymdhis').rand(1000,9999).'html';
      $url= 'http://'.$_SERVER['HTTP_HOST']."/";#注意
      $content=file_get_contents($url);
      $fs=fopen($fn,'w');
      fwrite($fs,$content);
      ?>

      下面對上面的注意進行一下解釋,如果在些你使用的是僅僅是文件名,而不是URL那么您這個文件中如果有使用引用文件比如require

      ('header.php');那么header.php中的內容將會顯示不出來。

      方法三:str_replace()

      <?php
      $filemodel="supply.php"; 字串5$file=fopen($filemodel,"w ");
      $temp=fread($file,filesize($filemodel));
      $temp=str_replace("[title]",$title,$temp);
      $temp=str_replace("[postTime]",$postTime,$temp);
      $temp=str_replace("[content]",$content,$temp);
      ?>

      該方法適用于很簡單的頁面,如果supply.php中有使用引用文件比如require('header.php');那么header.php中的內容將會顯示不出來

      我僅僅是給出了最簡單的方法,在實際應用中,您可以寫一個生成靜態頁的類,在類中加入相應的異常處理,該文件僅僅給出一個示例。

      分享:解決RHAS3中Apache2PHP上傳大小限制
      近日將論壇從VBB2升級到VBB3,將上傳附件大小設置為2M,可每次上傳超過500K的附件都會出錯,而之前使用VBB2時卻正常。 仔細檢查php.ini,其中的upload_max_filesize=8m,沒有任何問題,然后將

      來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
      相關PHP教程