Dans PHP, Stream_get_Filters () est une fonction très utile qui vous permet d'afficher les filtres de flux actuellement disponibles. Un filtre de flux peut être utilisé pour convertir ou traiter les données lorsqu'il est lu ou écrit, tel que la compression, le chiffrement, le codage, etc. Cet article expliquera comment utiliser Stream_get_Filters () pour afficher ces filtres et démontrer un exemple d'application simple.
Le filtre de flux fait partie de l'emballage de flux PHP, qui est utilisé pour traiter dynamiquement les données pendant la transmission de données de streaming. Par exemple, vous pouvez compresser des données avant de les écrire dans un fichier ou les décompresser automatiquement lors de la lecture des données d'un fichier.
Les filtres courants comprennent:
String.rot13 : ROT13 Encodage de la chaîne.
String.toupper : convertit une chaîne en majuscules.
String.tolower : convertit une chaîne en minuscules.
convert.base64-encode et convert.base64-décode : base64 codage ou décodage des données.
Vous pouvez utiliser la fonction Stream_get_Filters () pour obtenir un tableau qui répertorie tous les filtres de flux disponibles dans l'environnement PHP actuel:
<?php
$filters = stream_get_filters();
echo "Filtres de débit disponibles:\n";
print_r($filters);
?>
Après avoir exécuté ce code, vous obtiendrez une sortie comme ceci:
Filtres de débit disponibles:
Array
(
[0] => zlib.*
[1] => string.rot13
[2] => string.toupper
[3] => string.tolower
[4] => convert.*
)
Remarque: Différentes installations PHP peuvent répertorier différents filtres en fonction du module d'extension installé.
Voyons un exemple d'utilisation des filtres pour convertir le contenu de fichier en majuscules.
<?php
$filename = 'output.txt';
$fp = fopen($filename, 'w');
// Postuler lors de l'écriture string.toupper Filtre
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "hello, gitbox.net!\n");
fwrite($fp, "this is a test.\n");
fclose($fp);
echo "Écrire complet,Veuillez vérifier le fichier $filename。\n";
?>
Ce code créera un fichier Output.txt , qui convertira automatiquement toutes les lettres en capitalisation lors de l'écriture. Après avoir ouvert le fichier, le contenu sera:
HELLO, GITBOX.NET!
THIS IS A TEST.
PHP peut non seulement utiliser des flux de fichiers locaux, mais également utiliser fopen () pour ouvrir des flux d'URL (si ALLOT_URL_FOPEN est autorisé). Par exemple:
<?php
$url = 'https://gitbox.net/data.txt';
$fp = fopen($url, 'r');
// Postuler lors de la lecture ROT13 Filtre
stream_filter_append($fp, 'string.rot13');
while (!feof($fp)) {
echo fgets($fp);
}
fclose($fp);
?>
En supposant que le contenu sur https://gitbox.net/data.txt est un texte normal, ce code codera le contenu dans ROT13 et le sortira en temps réel.