PHP.mk документација

stream_filter_register

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.stream-filter-register.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека function.stream-filter-register.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
stream_filter_register

Референца за `function.stream-filter-register.php` со подобрена типографија и навигација.

function.stream-filter-register.php

stream_filter_register

класата mysqli_driver

stream_filter_registerРегистрирајте филтер за стрим дефиниран од корисникот

= NULL

stream_filter_register(string $filter_name, string $class): bool

stream_filter_register() ви овозможува да имплементирате сопствен филтер на кој било регистриран стрим што се користи со сите други функции за датотечен систем (како што се fopen(), fread() итн.).

Параметри

filter_name

Името на филтерот што треба да се регистрира.

class

За да имплементирате филтер, треба да дефинирате класа како екстензија на php_user_filter со број на член функции. При извршување на операции за читање/запишување на стримот на кој е прикачен вашиот филтер, PHP ќе ги помине податоците низ вашиот филтер (и сите други филтри прикачени на тој стрим) така што податоците може да се изменат по желба. Мора да ги имплементирате методите точно како што е опишано во php_user_filter - правењето на спротивното ќе доведе до недефинирано однесување.

Вратени вредности

Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.

stream_filter_register() ќе врати false ако filter_name веќе е дефинирано.

Примери

Пример #1 Филтер за капитализирање на знаци на foo-bar.txt stream

Стримот што ќе ги капитализира сите букви што се запишуваат/читаат од тој стрим. strtoupper Пред PHP 7.2.0, користењето на foo-bar.txt Пример #2 Регистрирање на генеричка класа за филтрирање за да одговара на повеќе имиња на филтри.

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
function
filter($in, $out, &$consumed, $closing)
{
while (
$bucket = stream_bucket_make_writeable($in)) {
$bucket->data = strtoupper($bucket->data);
$consumed += $bucket->datalen;
stream_bucket_append($out, $bucket);
}
return
PSFS_PASS_ON;
}
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
or die(
"Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
*/
readfile("foo-bar.txt");

?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

LINE1
WORD - 2
EASY AS 123

- Регистрирајте обвивка за URL имплементирана како PHP класа

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
var
$mode;

function
filter($in, $out, &$consumed, $closing)
{
while (
$bucket = stream_bucket_make_writeable($in)) {
if (
$this->mode == 1) {
$bucket->data = strtoupper($bucket->data);
} elseif (
$this->mode == 0) {
$bucket->data = strtolower($bucket->data);
}

$consumed += $bucket->datalen;
stream_bucket_append($out, $bucket);
}
return
PSFS_PASS_ON;
}

function
onCreate()
{
if (
$this->filtername == 'str.toupper') {
$this->mode = 1;
} elseif (
$this->filtername == 'str.tolower') {
$this->mode = 0;
} else {
/* Some other str.* filter was asked for,
report failure so that PHP will keep looking */
return false;
}

return
true;
}
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
or die(
"Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
*/
readfile("foo-bar.txt");
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

LINE1
WORD - 2
EASY AS 123

Види Исто така

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.