PHP Conference Japan 2024

php_user_filter::filter

(PHP 5, PHP 7, PHP 8)

php_user_filter::filter套用篩選器時呼叫

說明

public php_user_filter::filter(
    資源 $in,
    資源 $out,
    整數 &$consumed,
    布林值 $closing
): 整數

每當從附加的資料流讀取或寫入資料時(例如使用 fread()fwrite()),就會呼叫此方法。

參數

in

in 是一個指向 `bucket brigade` 的資源,其中包含一個或多個含有待過濾資料的 `bucket` 物件。

out

out 是一個指向第二個 `bucket brigade` 的資源,您修改後的 bucket 應放入其中。

consumed

consumed 必須 *始終* 以引用方式宣告,其值應增加您的過濾器讀取和修改的資料長度。在大多數情況下,這表示您將針對每個 `$bucket` 將 `consumed` 增加 `$bucket->datalen`。

closing

如果串流正在關閉過程中(因此這是最後一次通過過濾器鏈),則 `closing` 參數將被設為 **true**。

回傳值

filter() 方法在完成後必須回傳三個值之一。

回傳值 意義
PSFS_PASS_ON 過濾器已成功處理,資料可在 `out` `bucket brigade` 中取得。
PSFS_FEED_ME 過濾器已成功處理,但沒有可回傳的資料。需要來自串流或先前過濾器的更多資料。
PSFS_ERR_FATAL(預設) 過濾器發生無法復原的錯誤,且無法繼續。

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top