2010-10-03 14:49

[PHP] output buffering 筆記

  1. <?php 
  2. function compress($buffer) { 
  3.    return $buffer; 
  4. } 
  5.  
  6. ob_start(); /*開啟輸出緩衝*/ 
  7. // or 
  8. ob_start('ob_gzhandler'); /*開啟輸出緩衝,並使用 gZip 壓縮輸出。*/ 
  9. ob_start('compress'); /*加入自訂處理函數*/ 
  10.  
  11.  
  12. /*取得緩衝內容*/ 
  13. $contents = ob_get_contents(); 
  14.  
  15. /*取得緩衝內容的長度*/ 
  16. $length = ob_get_length(); 
  17.  
  18.  
  19. /*送出緩衝內容*/ 
  20. ob_flush(); 
  21.  
  22. /*結束緩衝,並送出內容*/ 
  23. ob_end_flush(); 
  24.  
  25.  
  26. /*清除緩衝內容*/ 
  27. ob_clean(); 
  28.  
  29. /*結束緩衝,並清除內容*/ 
  30. ob_end_clean(); 



用 PHP 優化 CSS file - 轉載自:PHP: ob_start - Manual
  1. <?php 
  2. ob_start("ob_gzhandler"); 
  3. ob_start("compress"); 
  4. header("Content-type: text/css; charset: UTF-8"); 
  5. header("Cache-Control: must-revalidate"); 
  6. $off = 0; # Set to a reaonable value later, say 3600 (1 hr); 
  7. $exp = "Expires: " . gmdate("D, d M Y H:i:s", time() + $off) . " GMT"; 
  8. header($exp); 
  9.  
  10. function compress($buffer) { 
  11.    // remove comments 
  12.    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);  
  13.    // remove tabs, spaces, newlines, etc. 
  14.    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer); 
  15.  
  16.    $buffer = str_replace('{ ', '{', $buffer); // remove unnecessary spaces. 
  17.    $buffer = str_replace(' }', '}', $buffer); 
  18.    $buffer = str_replace('; ', ';', $buffer); 
  19.    $buffer = str_replace(', ', ',', $buffer); 
  20.    $buffer = str_replace(' {', '{', $buffer); 
  21.    $buffer = str_replace('} ', '}', $buffer); 
  22.    $buffer = str_replace(': ', ':', $buffer); 
  23.    $buffer = str_replace(' ,', ',', $buffer); 
  24.    $buffer = str_replace(' ;', ';', $buffer); 
  25.    return $buffer; 
  26. } 
  27.  
  28. require_once('screen.css'); 
  29. require_once('layout.css'); 
  30. require_once('custom.php'); 
  31. require_once('titles.css'); 
  32. require_once('bus.css'); 

0 回應: