php://Accès aux divers flux I/O
&reftitle.description;
PHP fournit un nombre important de flux I/O qui permettent d'accéder
aux flux d'entrée et de sortie de PHP lui-même, aux descripteurs de fichiers
de l'entrée standard et des sorties standard et d'erreurs, à des flux représentant
des fichiers temporaires en mémoire vive ou sur le disque, ainsi qu'à des filtres
qui peuvent manipuler d'autres ressources de fichiers pendant la lecture ou l'écriture.
php://stdin, php://stdout et php://stderrphp://stdin, php://stdout et
php://stderr permettent des accès directs aux flux d'entrée
ou de sortie correspondant du processus PHP. Le flux fait référence à une copie
du descripteur de fichier, ce qui signifie que si vous ouvrez php://stdin
et le fermez plus tard, vous ne fermez que votre copie du descripteur ; le
flux réellement référencé par STDIN n'est pas affecté.
Il est recommandé d'utiliser uniquement les constantes STDIN,
STDOUT et STDERR au lieu
d'ouvrir manuellement les flux en utilisant ces gestionnaires.
php://stdin est en lecture seule, alors que
php://stdout et php://stderr sont
en écriture seule.
php://inputphp://input est un flux en lecture seule qui permet
de lire des données brutes depuis le corps de la requête.
php://input n'est pas disponible avec
enctype="multipart/form-data".
php://outputphp://output est un flux en écriture seule, qui permet d'écrire
dans le mécanisme de buffer de sortie de la même façon que les fonctions
print et
echo.
php://fdphp://fd permet un accès direct au descripteur de fichier
spécifié. Par exemple, php://fd/3 correspond au
descripteur de fichier numéro 3.
php://memory et php://tempphp://memory et php://temp
sont des flux en lecture/écriture qui permettent de stocker des données
temporaires dans un gestionnaire de fichiers. La seule différence entre
ces deux flux est que php://memory stockera toujours
ses données en mémoire, alors que php://temp utilisera un
fichier temporaire une fois que la quantité de données enregistrées aura dépassé
une limite prédéfinie (par défaut, 2 Mo). L'emplacement
de ce fichier temporaire est déterminé de la même manière que pour
la fonction sys_get_temp_dir.
La limite mémoire de php://temp peut être contrôlée
en ajoutant /maxmemory:NN, où NN est
la quantité maximale de données à conserver en mémoire avant d'utiliser
un fichier temporaire, en octets.
php://filterphp://filter est une sorte de gestionnaire prévu
pour permettre l'application de filtres
sur un flux au moment de son ouverture. Ceci est très pratique avec
des fonctions sur des fichiers toutes-en-un comme les fonctions
readfile, file et
file_get_contents, où il n'existe pas d'autre mécanisme
permettant d'appliquer un filtre au flux avant que le contenu ne soit lu.
La cible de php://filter prend les paramètres suivants
sous la forme de composantes de son chemin. Plusieurs filtres chaînés
peuvent être spécifiés en un seul chemin. Reportez-vous aux exemples
pour une utilisation correcte de ces paramètres.
Paramètres de php://filterNomDescriptionresource=<flux à filtrer>
Ce paramètre est requis. Il spécifie le flux que vous souhaitez
filtrer.
read=<liste des filtres à appliquer à la lecture>
Ce paramètre est optionnel. Un ou plusieurs noms de filtres
peuvent être fournis ici, séparés par un caractère pipe (|).
write=<liste des filtres à appliquer à l'écriture>
Ce paramètre est optionnel. Un ou plusieurs noms de filtres
peuvent être fournis ici, séparés par un caractère pipe (|).
<liste de filtre à appliquer à la fois lors de la lecture et de l'écriture>
Tous les filtres fournis sans être préfixés par read=
ou write= seront appliqués à la fois lors de la
lecture et lors de l'écriture.
&reftitle.options;
Résumé du gestionnaire (pour php://filter, reportez-vous
au résumé du gestionnaire à filtrer)
AttributSupportéRestreint par allow_url_fopenNonRestreint par allow_url_includephp://input,
php://stdin,
php://memory et
php://temp uniquement.
Autorise la lecturephp://stdin,
php://input,
php://fd,
php://memory et
php://temp uniquement.
Autorise l'écriturephp://stdout,
php://stderr,
php://output,
php://fd,
php://memory et
php://temp uniquement.
Autorise l'ajoutphp://stdout,
php://stderr,
php://output,
php://fd,
php://memory et
php://temp uniquement. (Équivalent à de l'écriture)
Autorise à la fois la lecture et l'écriturephp://fd,
php://memory et
php://temp uniquement.
Support de la fonction stat
Non. Néanmoins php://memory et
php://temp supportent fstat.
Support de la fonction unlinkNonSupport de la fonction renameNonSupport de la fonction mkdirNonSupport de la fonction rmdirNonSupport de la fonction stream_selectphp://stdin,
php://stdout,
php://stderr,
php://fd et
php://temp uniquement.
&reftitle.examples;
php://temp/maxmemory
Ce paramètre optionnel permet de configurer la limite
mémoire avant que php://temp ne commence à utiliser
un fichier temporaire.
]]>
php://filter/resource=<flux à filtrer>
Ce paramètre doit être placé à la fin de votre spécification
de php://filter et doit pointer sur le flux
que vous souhaitez filtrer.
]]>
php://filter/read=<liste de filtres à appliquer lors de la lecture>
Ce paramètre prend un ou plusieurs noms de filtres séparés par
un caractère pipe |.
]]>
php://filter/write=<liste des filtres à appliquer lors de l'écriture>
Ce paramètre prend un ou plusieurs noms de filtres séparés par
un caractère pipe |.
]]>
php://memory et php://temp ne sont pas réutilisablesphp://memory et php://temp
ne sont pas réutilisables, c.-à-d. après que les flux ont été fermés il n'y a aucun moyen de les référer à nouveau.