(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 (по умолчанию) | Фильтр вызвал необрабатываемую ошибку и не может продолжить выполнение. |