ob_get_status() 返回的陣列中的欄位如下:
陣列
(
[name] => 預設輸出處理器
[type] => 0
[flags] => 112
[level] => 1
[chunk_size] => 0
[buffer_size] => 16384
[buffer_used] => 0
)
這些值會在 ob_start() 函式執行後立即填入。
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
ob_get_status — 取得輸出緩衝區的狀態
ob_get_status() 會傳回最上層輸出緩衝區的狀態資訊,如果 full_status
設為 true
,則會傳回所有作用中輸出緩衝區層級的狀態資訊。
如果省略 full_status
或其值為 false
,則會傳回一個簡單的陣列,其中包含作用中輸出層級的狀態資訊。
如果 full_status
為 true
,則會傳回一個陣列,其中每個作用中輸出緩衝層級都有一個元素。輸出層級會用作頂層陣列的鍵,而每個陣列元素本身是另一個陣列,其中包含一個作用中輸出層級的狀態資訊。
如果未開啟輸出緩衝,則會傳回一個空陣列。
鍵 | 值 |
---|---|
name | 作用中輸出處理程式的名稱(詳情請參閱 ob_list_handlers() 的傳回值) |
type |
0 (內部處理程式)或 1 (使用者提供的處理程式) |
flags | 由 ob_start() 設定的旗標位元遮罩、輸出處理程式的類型(見上文)以及緩衝程序的狀態(
PHP_OUTPUT_HANDLER_* 常數)。如果處理程式成功處理緩衝區且未傳回 false ,則會設定 PHP_OUTPUT_HANDLER_STARTED 和 PHP_OUTPUT_HANDLER_PROCESSED 。如果處理程式在處理緩衝區時失敗或傳回 false ,則會設定 PHP_OUTPUT_HANDLER_STARTED 和 PHP_OUTPUT_HANDLER_DISABLED 。 |
level | 輸出巢狀層級(從零開始)。請注意,ob_get_level() 為相同層級傳回的值會相差一。對於 ob_get_status(),第一層為 0 ,而對於 ob_get_level(),第一層為 1 。 |
chunk_size | 區塊大小(以位元組為單位)。由 ob_start() 設定,或啟用 output_buffering 並將其值設為正整數時設定。 |
buffer_size | 輸出緩衝區大小(以位元組為單位) |
buffer_used | 輸出緩衝區中資料的大小(以位元組為單位)(與 ob_get_length() 的整數傳回值相同) |
範例 #1:當 full_status
為 false
時傳回的陣列
Array ( [name] => URL-Rewriter [type] => 0 [flags] => 112 [level] => 2 [chunk_size] => 0 [buffer_size] => 16384 [buffer_used] => 1024 )
範例 #2:當 full_status
為 true
時傳回的陣列
Array ( [0] => Array ( [name] => default output handler [type] => 0 [flags] => 112 [level] => 1 [chunk_size] => 0 [buffer_size] => 16384 [buffer_used] => 2048 ) [1] => Array ( [name] => URL-Rewriter [type] => 0 [flags] => 112 [level] => 2 [chunk_size] => 0 [buffer_size] => 16384 [buffer_used] => 1024 ) )
ob_get_status() 返回的陣列中的欄位如下:
陣列
(
[name] => 預設輸出處理器
[type] => 0
[flags] => 112
[level] => 1
[chunk_size] => 0
[buffer_size] => 16384
[buffer_used] => 0
)
這些值會在 ob_start() 函式執行後立即填入。