Aktueller Standort: Startseite> Neueste Artikel> Wie bekomme ich Filter für Eingabestreams mit stream_get_filter in PHP?

Wie bekomme ich Filter für Eingabestreams mit stream_get_filter in PHP?

gitbox 2025-05-27

In PHP ist Stream_get_filters () eine sehr nützliche Funktion, mit der Sie derzeit verfügbare Stream -Filter anzeigen können. Ein Stream -Filter kann verwendet werden, um Daten zu konvertieren oder zu verarbeiten, wenn er gelesen oder geschrieben wird, z. B. Komprimierung, Verschlüsselung, Codierung usw. In diesem Artikel wird erläutert, wie Stream_get_filters () verwendet wird, um diese Filter anzuzeigen und ein einfaches Anwendungsbeispiel zu demonstrieren.

1. Was ist ein Flussfilter?

Der Stream -Filter ist Teil des PHP -Stream -Wrappers, mit dem Daten während der Streaming -Datenübertragung dynamisch verarbeitet werden. Sie können beispielsweise Daten komprimieren, bevor Sie sie in eine Datei schreiben, oder sie beim Lesen von Daten aus einer Datei automatisch dekomprimieren.

Gemeinsame Filter umfassen:

  • String.ROT13 : ROT13 codieren die Zeichenfolge.

  • String.toUpper : Umwandle eine Zeichenfolge in Großbuchstaben.

  • String.Tolower : Konvertiert eine Zeichenfolge in Kleinbuchstaben.

  • convert.base64 -cod und konvertieren.base64-Decode : Base64 Codierung oder Dekodierung der Daten.

2. Verwenden Sie Stream_get_filters (), um verfügbare Filter anzuzeigen

Sie können die Funktion von Stream_get_filters () verwenden, um ein Array zu erhalten, in dem alle verfügbaren Stream -Filter in der aktuellen PHP -Umgebung aufgeführt sind:

 <?php
$filters = stream_get_filters();
echo "Verfügbare Flussfilter:\n";
print_r($filters);
?>

Nachdem Sie diesen Code ausgeführt haben, erhalten Sie eine solche Ausgabe wie folgt:

 Verfügbare Flussfilter:
Array
(
    [0] => zlib.*
    [1] => string.rot13
    [2] => string.toupper
    [3] => string.tolower
    [4] => convert.*
)

HINWEIS: In verschiedenen PHP -Installationen können je nach installierter Erweiterungsmodul verschiedene Filter auflisten.

3. Praktische Anwendung: Verwenden Sie Filter für das Schreiben von Dateien

Lassen Sie uns ein Beispiel für die Verwendung von Filtern zum Konvertieren von Dateiinhalten in Großbuchstaben zeigen.

 <?php
$filename = 'output.txt';
$fp = fopen($filename, 'w');

// Bewerben Sie sich beim Schreiben string.toupper Filter
stream_filter_append($fp, 'string.toupper');

fwrite($fp, "hello, gitbox.net!\n");
fwrite($fp, "this is a test.\n");

fclose($fp);

echo "Schreiben Sie vollständig,Bitte überprüfen Sie die Datei $filename。\n";
?>

Dieser Code erstellt eine Ausgabe -TXT -Datei, mit der alle Buchstaben automatisch in die Kapitalisierung konvertiert werden. Nachdem Sie die Datei geöffnet haben, ist der Inhalt:

 HELLO, GITBOX.NET!
THIS IS A TEST.

4. Verwenden Sie URL -Ströme und -filter, um zu kombinieren

PHP kann nicht nur lokale Dateiströme betreiben, sondern auch Fopen () zum Öffnen von URL -Streams verwenden (falls erlaubt ist. Zum Beispiel:

 <?php
$url = 'https://gitbox.net/data.txt';
$fp = fopen($url, 'r');

// Bewerben Sie sich beim Lesen ROT13 Filter
stream_filter_append($fp, 'string.rot13');

while (!feof($fp)) {
    echo fgets($fp);
}

fclose($fp);
?>

Unter der Annahme, dass der Inhalt auf https://gitbox.net/data.txt normaler Text ist, codiert dieser Code den Inhalt in Rot13 und gibt ihn in Echtzeit aus.