国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 莲花县| 西安市| 韶关市| 安仁县| 万全县| 汉阴县| 搜索| 娄底市| 西吉县| 大兴区| 茶陵县| 澳门| 开江县| 当阳市| 昭觉县| 玉树县| 白河县| 阜新市| 樟树市| 罗源县| 东乌珠穆沁旗| 玉龙| 清涧县| 资溪县| 甘南县| 资中县| 理塘县| 晋州市| 蓬溪县| 贡嘎县| 池州市| 永昌县| 大理市| 抚顺县| 大田县| 喀喇沁旗| 三河市| 石河子市| 仁怀市| 北宁市| 合山市|