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.
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.
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.
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.
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.