stream_get_filters în PHP

Stream-uri PHP 5.0+

Returnează lista filtrelor de stream disponibile (string.toupper, convert.*, zlib.* și cele proprii).

Sintaxă
stream_get_filters(): array

Ce face stream_get_filters

Filtrele transformă datele în timp ce sunt citite sau scrise: le trec în majuscule, le codifică base64, le comprimă. stream_get_filters spune ce filtre sunt disponibile. Intrările cu * (de exemplu convert.*) sunt familii: convert.base64-encode, convert.base64-decode și altele.

Filtrele înregistrate cu stream_filter_register apar și ele în listă.

Ce returnează

Un tablou cu numele filtrelor.

Exemple

Exemplul 1: Filtre de bază

<?php
$filtre = stream_get_filters();

foreach (["string.toupper", "string.rot13", "convert.*", "zlib.*"] as $nume) {
    echo $nume . ": " . (in_array($nume, $filtre) ? "da" : "nu") . "\n";
}

Rezultat

string.toupper: da
string.rot13: da
convert.*: da
zlib.*: da

Exemplul 2: Un filtru propriu apare în listă

<?php
class Inversare extends php_user_filter
{
    public function filter($in, $out, &$consumed, bool $closing): int
    {
        while ($bucket = stream_bucket_make_writeable($in)) {
            $bucket->data = strrev($bucket->data);
            $consumed += $bucket->datalen;
            stream_bucket_append($out, $bucket);
        }
        return PSFS_PASS_ON;
    }
}

var_dump(in_array("inversare", stream_get_filters()));
stream_filter_register("inversare", "Inversare");
var_dump(in_array("inversare", stream_get_filters()));

Rezultat

bool(false)
bool(true)

Greșeli frecvente

  • Cauți în listă un nume exact din familie, de exemplu convert.base64-encode. Lista conține doar convert.*, deși filtrul funcționează.

Comenzi înrudite