Introduction

Les flux ("streams" en anglais) sont une méthode de généralisation des fichiers, sockets, connexions réseau, données compressées et autres opérations du même type, qui partagent des opérations communes. Dans sa définition la plus simple, un flux est une ressource qui présente des capacités de flux : c'est-à-dire que ces objets peuvent être lus ou recevoir des écritures de manière linéaire, et dispose aussi de moyen d'accéder à une position arbitraire dans le flux.

Un gestionnaire (littéralement, wrapper en anglais), est une fonction qui indique comment le flux se comporte spécifiquement. C'est le cas du gestionnaire http, qui sait comment traduire une URL en une requête HTTP/1.0 sur un serveur distant. Il existe de nombreux gestionnaires intégrés à PHP par défaut (voir Liste des protocoles et des gestionnaires supportés), et, de plus, des gestionnaires spécifiques peuvent être ajoutés dans les scripts PHP avec la fonction stream_register_wrapper(), ou bien directement par une autre extension. Grâce à la souplesse des gestionnaires qui peuvent être ajoutés à PHP, il n'y a pas de limites aux possibilités offertes. Pour connaître la liste des gestionnaires actuellement enregistrés, utilisez la fonction stream_get_wrappers().

Un flux est référencé comme : scheme://target

  • scheme(chaîne de caractères) - Le nom du gestionnaire a utiliser. Par exemple, file, http, https, ftp, ftps, compress.zlib, compress.bz. et php.. Voir Liste des protocoles et des gestionnaires supportés pour une liste complète des gestionnaires enregistrés de PHP. Si aucun gestionnaire n'est spécifié, la fonction par défaut est utilisée (typiquement, file://).
  • target - Dépend du gestionnaire utilisé. Pour les flux relatifs aux systèmes de fichiers, c'est typiquement un chemin et un nom de fichier du fichier désiré. Pour les flux relatifs aux réseaux, c'est typiquement le nom d'hôte, souvent avec un chemin apposé. Voir aussi Liste des protocoles et des gestionnaires supportés pour une description des cibles des flux intégrés.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top