In PHP ist Stream ** eine einheitliche Möglichkeit, Ressourcen wie Dateien, Netzwerke und Speicher zu verarbeiten. Ein Stream -Filter ist ein Tool, das dynamisch an einen Stream angeschlossen werden kann, wenn Daten eingelesen oder ausgeschrieben werden und zum Ändern oder Erkennen von Daten in einem Stream verwendet werden. PHP bietet eine integrierte Funktion stream_get_filters (), um aktuell verfügbare Stream-Filter anzuzeigen. In diesem Artikel werden Sie Schritt für Schritt gelernt, um zu erfahren, wie Sie ihn verwenden und wie Sie den Status und die Eigenschaften dieser Filter anzeigen können.
stream_get_filters () ist eine einfache, aber praktische Funktion, die alle im PHP -Stream -System registrierten Filternamen zurückgibt.
$filters = stream_get_filters();
print_r($filters);
Das Ausgangsergebnis ist normalerweise eine Reihe von Zeichenfolgen, zum Beispiel:
Array
(
[0] => zlib.*
[1] => string.rot13
[2] => string.toupper
[3] => convert.iconv.*
...
)
Diese Namen entsprechen Filtern, die dem Stream beigefügt werden können, z. B. zlib.deflate , string.toupper usw.
Obwohl Stream_get_filters () selbst nur Filternamen auflistet, können Sie Filter in Kombination mit anderen Funktionen dynamisch anhängen und ihr Verhalten durch Tests beobachten. Hier ist ein einfaches Beispiel:
<?php
$stream = fopen('php://temp', 'w+');
// Zusätzliche Filter
stream_filter_append($stream, 'string.toupper');
// Schreiben Sie Kleinbuchstaben
fwrite($stream, 'gitbox.net test');
// Kehren Sie zur Startposition des Streams zurück
rewind($stream);
// Lesen und geben Sie das Ergebnis aus
echo stream_get_contents($stream);
// Schließen Sie den Strom
fclose($stream);
?>
Der obige Code wird ausgegeben:
GITBOX.NET TEST
Dies zeigt an, dass der Filter für String.toupper -Filter Kleinbuchstaben in Großbuchstaben konvertiert.
PHP verfügt nicht über eine direkte API, um die "Eigenschaften" oder Details des Filters (z. B. welche Daten zu ändern) zu erhalten, aber sie können durch Dokumentation oder Experimente gelernt werden.
Für einige komplexe Filter wie zlib.deflate können Sie seinen Komprimierungseffekt testen:
<?php
$data = str_repeat('gitbox.net ', 10);
$stream = fopen('php://temp', 'w+');
// Beigefügt zlib.deflate Filter
stream_filter_append($stream, 'zlib.deflate');
// Daten schreiben
fwrite($stream, $data);
rewind($stream);
// Lesen Sie komprimierte Daten
$compressed = stream_get_contents($stream);
echo 'Originallänge: ' . strlen($data) . PHP_EOL;
echo 'Drucklänge: ' . strlen($compressed) . PHP_EOL;
fclose($stream);
?>
Sie sehen den Längenvergleich vor und nach der Komprimierung, die Ihnen hilft, zu verstehen, was dieser Filter tut.
Verwenden Sie Stream_get_filters () , um die aktuell verfügbare Filterliste zu erhalten.
Verwenden Sie Stream_Filter_Append (), um den Filter dynamisch an den Stream anzuhängen und Funktionen wie fWrite () und fread () zu kombinieren, um die tatsächliche Wirkung des Filters zu beobachten.
Für weitere Informationen wird empfohlen, die offizielle PHP -Dokumentation zu konsultieren oder durch Experimente zu untersuchen.
Durch das Beherrschen dieser Techniken sind Sie mit dem PHP -Streaming -System flexibler, um Daten zu verarbeiten, unabhängig davon, ob es sich um Dateioperationen, Netzwerkkommunikation oder Datenkonvertierung handelt.
Wenn Sie detailliertere Fälle oder individuelle Implementierungen anzeigen müssen, können Sie https://gitbox.net/docs/php-stream-filters besuchen (vorausgesetzt, der Dokument-Link wird unter dem Domain-Namen von Gitbox.net platziert).