国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php ob_start()函數實現(xiàn)當前頁面內容緩存輸出

2024-09-04 11:48:30
字體:
來源:轉載
供稿:網友

頁面緩存就是把頁面保存到一個文件中,下次讀出時直接調用文件而不查詢數據庫,這里我們介紹利用ob_start()來實現(xiàn).

例,代碼如下:

  1. <?php  
  2. ob_start(); //打開緩沖區(qū)  
  3. phpinfo(); //使用phpinfo函數  
  4. $info=ob_get_contents(); //得到緩沖區(qū)的內容并且賦值給$info  
  5. $file=fopen(’info.txt’,’w’); //打開文件info.txt  
  6. fwrite($file,$info); //寫入信息到info.txt  
  7. fclose($file); //關閉文件info.txt  
  8. //或直接用 file_put_content('info.txt',$info);  
  9. ?> 

以上的方法,可以把不同用戶的phpinfo信息保存下來,這里我們可以著重看看這個方法的使用技巧,用這個方法可以實現(xiàn)生成靜態(tài)頁面的便利.

并且用這個方法比用file_get_conents()的方法更合理更有效率,簡單的說個應用吧,比如想要把phpinfo()的內容寫入文件,可以這樣做:

  1. ob_start(); 
  2. $phpinfo = phpinfo(); 
  3. //寫入文件 
  4. ob_end_flush(); 
  5. 或者還有這樣的用途: 
  6. ob_start(); //打開緩沖區(qū) 
  7. echo "Hellon"//輸出 
  8. header("location:index.php"); //把瀏覽器重定向到index.php 
  9. ob_end_flush();//輸出全部內容到瀏覽器 

header()會發(fā)送一段文件頭給瀏覽器,但是如果在header()之前已經有了任何輸出(包括空輸出,比如空格,回車和換行)就會報錯,但是如果輸出在ob_start()和ob_end_flush()之間,就會沒有問題,因為在輸出前打開了緩沖區(qū),echo后面的字符就不會輸出到瀏覽器,而是保留在服務器,知道使用flush才會輸出,所以header()會正常執(zhí)行.

當然,ob_start()還可以有參數,參數就是一個回調函數,例子如下:

  1. <? php 
  2. function callback($buffer
  3.   // replace all the apples with oranges 
  4.   return (str_replace("apples""oranges"$buffer)); 
  5. ob_start("callback"); 
  6. ?> 
  7. <html> 
  8. <body> 
  9. <P>It's like comparing apples to oranges.</P> 
  10. </ body > 
  11. </ html > 
  12. <?php 
  13. ob_end_flush(); 
  14. ?> 
  15. 以上程序會輸出: 
  16. <html > 
  17. <body> 
  18. <p>It's like comparing oranges to oranges.</ p> 
  19. </ body> 
  20. </ html> 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 河间市| 射洪县| 惠州市| 寻乌县| 朝阳区| 融水| 册亨县| 化隆| 邹城市| 若羌县| 肥乡县| 绥棱县| 海安县| 敖汉旗| 霍城县| 房山区| 永福县| 新民市| 疏附县| 澄江县| 宁都县| 大悟县| 天祝| 卢龙县| 长阳| 会同县| 台东县| 象山县| 苍山县| 荣成市| 吕梁市| 东山县| 德化县| 崇礼县| 南木林县| 东阿县| 商河县| 聂荣县| 彩票| 汝阳县| 绥化市|