首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 輸出緩衝 (Output Buffer) 函數妙用

     編輯:PHP 相關知識

前言

PHP 中許多函數直接輸出 (如 passthru(), readfile(), var_dump()),若想攔截輸出存入變數、寫入檔案或經處理後再輸出,需使用輸出緩衝函數。

核心函數

  • ob_start():開啟緩衝,後續輸出導向內部緩衝區
  • ob_get_contents():取得緩衝區內容 (字串)
  • ob_get_length():取得緩衝區長度
  • ob_end_flush():關閉緩衝並輸出內容
  • ob_end_clean():關閉緩衝並捨棄內容

實用範例:捕獲 var_dump 輸出並安全顯示

<?php
$var = array('key' => '<script>alert(1)</script>', 'num' => 123);

ob_start();
var_dump($var);
$output = ob_get_contents();
ob_end_clean();

// 轉義 HTML 特殊字元後包在 <pre> 中顯示
echo '<pre>' . htmlspecialchars($output) . '</pre>';
?>

此法解決 var_dump 輸出含 HTML 標籤導致瀏覽器解析而看不見的問題。

其他應用場景

  • 將 readfile()、passthru() 輸出存入變數供模板引擎使用
  • 在輸出前進行字串替換、壓縮 (ob_gzhandler)
  • 實作頁面快取:ob_start() 開頭,結尾取內容存檔,下次直接讀檔輸出
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved