Flux

Introduction

Les flux 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 stream est une resource 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 disposent aussi de moyens d'accĂ©der Ă  une position arbitraire dans le flux.

Un wrapper 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_wrapper_register(), 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, utiliser la fonction stream_get_wrappers().

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

  • scheme (string) - Le nom du gestionnaire Ă  utiliser. Par exemple, file, http, https, ftp, ftps, compress.zlib, compress.bz2 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

User Contributed Notes

There are no user contributed notes for this page.