



|
Manuel PHP
|
|
Table : .Fonctions .NET.Fonctions Apache .Alternative PHP Cache .Débogueur avancé pour PHP .Tableaux .Aspell (Obsolète) .Nombres de grande taille BCMath .Compilateur bytecode pour PHP .Compression Bzip2 .Calendrier .Paiement CCVS (Obsolète) .Classes et Objets .Fonctions Classkit .Fonctions ClibPDF .COM et .Net (Windows) .Crack .Caractères .CURL .Paiement Cybercash .Fonctions Crédit Mutuel CyberMUT .Cyrus IMAP .Dates et heures .Fonctions DB++ .DBA .dBase .DBM (Obsolète) .Fonctions dbx .Direct IO .Accès aux dossiers .Fonctions DOM .Fonctions DOM XML .Fonctions enchant .Gestion des erreurs .EXIF .Fonctions Expect .Fonctions de monitorage d'altération de fichiers .Forms Data Format .Fonctions Fileinfo .Fonctions filePro .Système de fichiers .Fonctions Filter .Fonctions Firebird/InterBase .Fonctions Firebird/Interbase (PDO FIREBIRD) .Fonctions FriBiDi .FrontBase .Fonctions FTP .Fonctions .Fonctions GeoIP .Gettext (GNU) .Fonctions GMP .gnupg Fonctions .Net Gopher .Fonctions hash .HTTP .Hyperwave .Hyperwave API .Fonctions IBM (PDO IBM) .Fonctions IBM DB2, Cloudscape et Apache Derby .ICAP .Iconv .Fonctions ID3 .Fonctions d'administration d'IIS .Images .Image magick Functions .IMAP .Informix .Fonctions Informix (PDO INFORMIX) .Ingres II .IRC .Intégration de Java avec PHP .Fonctions JSON .KADM5 .LDAP .libxml .Lotus Notes .Fonctions LZF .Traitement d'email .Mathématiques .MaxDB PHP Extension .MCAL .chiffrement mcrypt .Fonctions de paiement MCVE (Monetra) .Fonctions Memcache .Hash .Fonctions Mimetype .Ming pour Flash .Fonctions diverses .mnoGoSearch .Microsoft SQL Server .Microsoft SQL Server et Fonctions Sybase (PDO DBLIB) .Sessions Mohawk .mSQL .Chaînes de caractères multi-octets .Fonctions muscat .MySQL .Fonctions MySQL (PDO MYSQL) .Extension MySQL améliorée .Fonctions de contrôle d'écran de terminal .Réseau .Fonctions Newt .Netscape Server API .agrégation d'objets/Composition de fonctions .Overload .Fonctions Oracle .Fonctions ODBC (unifiés) .Fonctions ODBC et DB2 (PDO ODBC) .oggvorbis .Gestion Audio OpenAL .OpenSSL .Oracle (Obsolète) .Fonctions Oracle (PDO OCI) .Bufferisation de sortie .Ovrimos SQL .Accès aux fichiers Paradox .Fonctions Parsekit .Contrôle des processus .Expressions rationnelles compatibles Perl .Fonctions PDF .Fonctions PDO .Phar archive stream and classes .Options PHP et informations .Fonctions POSIX .Expressions rationnelles .PostgreSQL .Fonctions PostgreSQL (PDO PGSQL) .Impression .Exécution de programmes externes .Création de document PostScript .Pspell .qtdom .Radius .Rar .Readline (GNU) .Recode (GNU) .Fonctions Lecture d'En-tête RPM .Fonctions runkit .SAM - Messagerie asynchrone .Extension client Satellite CORBA (Obsolète) .SCA Functions .Fonctions SDO .Fonctions de Service d'Accès de Données SDO XML .Fonctions SDO Relationnel Service d'Accès de Données .Sémaphores et gestion de la mémoire partagée .SESAM .Sauvegarde d'Identifiant de session PostgreSQL .Sessions .Mémoire partagée .Fonctions SimpleXML .Fonctions SNMP .Fonctions SOAP .Sockets .Fonctions Standard PHP Library (SPL) .Fonctions SQLite .Fonctions SQLite (PDO SQLITE) .Shell2 sécurisé .Fonctions statistics .Flux .Chaînes de caractères (Strings) .Shockwave Flash .Sybase .Fonctions TCP Wrappers .Tidy .Analyseur de code PHP .Unicode Functions .URL .Fonctions de gestion des variables .Paiement par Verisign .vpopmail .API windows .WDDX .Fonctions win32ps .Fonctions win32service .Fonctions xattr .Fonctions xdiff .Analyseur syntaxique XML .XML-RPC .XMLReader functions .Fonctions XMLWriter .XSL .XSLT .YAZ .NIS .Fonctions ZIP .Compression Zlib |
streamCLVIII. FluxIntroductionLes flux ("streams" en anglais) ont été introduits en PHP 4.3.0 comme 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 à des positions arbitraires dans le flux. Un gestionnaire (dit 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 Annexe M), 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, en utilisant l'API C de Chapitre 44. 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 :
Filtres de fluxUn filtre est une fonction finale qui effectue des opérations sur les données qui sont lues ou écrites dans un flux. Un nombre arbitraire de filtres peuvent être ajoutés sur un flux. Des filtres personnalisés peuvent aussi être ajoutés avec la fonction stream_register_filter(), ou bien dans une extension avec l'API C de Chapitre 44. Pour connaître la liste des gestionnaires actuellement enregistrés, utilisez la fonction stream_get_filters(). Contextes de fluxUn contexte est un jeu de paramètres et d'options spécifiques à un gestionnaire qui modifie ou améliore le comportement d'un flux. Les contextes sont créés en utilisant la fonction stream_context_create() et peuvent être donnés aux fonctions de création de flux sur le système de fichiers (i.e. fopen(), file(), file_get_contents(), etc.). Les options peuvent être spécifiées en appelant stream_context_create() ou, plus tard, avec stream_context_set_option(). Une liste des options spécifiques à des gestionnaires est disponible dans la liste des gestionnaires intégrés (voyez Annexe M). De plus, les paramètres peuvent être envoyés à un contexte en utilisant la fonction stream_context_set_params(). Actuellement, le seul paramètre de contexte supporté par PHP est notification. La valeur de ce paramètre doit être le nom d'une fonction qui sera appelée lorsqu'un événement survient pour un flux. La fonction d'alerte est appelée durant la réception de l'événement, et doit accepter 6 paramètres : void my_notifier ( int notification_code, int severity, string message, int message_code, int bytes_transferred, int bytes_max )
InstallationLes flux font partie de PHP depuis la version 4.3.0. Aucune étape supplémentaire n'est requise pour les activer. Classes StreamDes gestionnaires personnalisés peuvent être enregistrés via la fonction stream_register_wrapper(), en utilisant la définition de classe décrite dans ce manuel. La classe php_user_filter est prédéfinie. C'est une classe abstraite à utiliser avec les filtres personnalisés. Voyez le manuel de la fonction stream_register_filter() pour plus de détails sur les implémentations de filtres utilisateurs. Constantes pré-définiesCes constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.
Erreurs de fluxComme avec n'importe quel fichier ou socket, les opérations sur un flux peuvent échouer pour une grande variété de raisons (par exemple : impossible de se connecter au serveur distant, fichier introuvable, etc.). Un flux peut aussi échouer parce que le gestionnaire n'est pas configuré sur le système en cours. Voyez le tableau retourné par la fonction stream_get_wrappers() pour connaître la liste des gestionnaires configurés sur votre installation de PHP. Comme avec la plupart des fonctions internes de PHP, si une erreur survient, un message de type E_WARNING sera généré pour indiquer la nature de l'erreur. Exemples
|

