(PHP 5, PHP 7, PHP 8)
php_user_filter::filter — Вызывается, как только применяется фильтр
Этот метод вызывается всякий раз, когда данные читаются из присоединённого потока или записываются в него (такими функциями, как fread() или fwrite()).
in
in - ресурс, указывающий на
bucket brigade, которая содержит один или
несколько объектов bucket содержащих фильтруемые данные.
out
out – ресурс, указывающий на другой объект
bucket brigade, в который будут помещаться
модифицированные бакеты.
consumed
consumed, который должен всегда
передаваться по ссылке, должен увеличиваться на размер данных, которые
фильтр читает и изменяет. В большинстве случаев это значит, что вы сами будете
увеличивать значение consumed на
$bucket->datalen для каждого $bucket.
closing
Если поток закрывается (следовательно, это последний фильтр в цепочке),
аргумент closing примет значение true.
Метод filter() должен возвращать одно из трёх значений.
| Возвращаемое значение | Описание |
|---|---|
PSFS_PASS_ON |
Фильтр отработал успешно, данные доступны через аргумент
out bucket brigade.
|
PSFS_FEED_ME |
Фильтр отработал успешно, однако доступных для вывода данных нет. Требуются ещё данные из потока или предыдущего фильтра. |
PSFS_ERR_FATAL (по умолчанию) |
Фильтр вызвал необрабатываемую ошибку и не может продолжить выполнение. |