stream_filter_prepend <<< |
stream_filter_register | stream_get_filters >>> |
7.101 Flôts 7 Index des fonctions Manuel PHP . Introduction . Filtres de flôts . Contextes de flôts . Installation . Classes Stream . Constantes prédefinies . Erreurs de flôts . Exemples . stream_context_create . stream_context_get_options . stream_context_set_option . stream_context_set_params . stream_copy_to_stream . stream_filter_append . stream_filter_prepend ->stream_filter_register . stream_get_filters . stream_get_line . stream_get_meta_data . stream_get_transports . stream_get_wrappers . stream_register_wrapper . stream_select . stream_set_blocking . stream_set_timeout . stream_set_write_buffer . stream_socket_accept . stream_socket_client . stream_socket_get_name . stream_socket_server . stream_wrapper_register |
7.101.16 stream_filter_register()Enregistre un filtre de flôt[ Exemples avec stream_filter_register ] PHP 5 CVS only bool stream_filter_register ( string filtername , string classname )stream_filter_register vous permet d'implémenter votre propre filtre de flôt, à utiliser avec les fonctions d'accès aux données externes (comme fopen , fread , etc...). Pour ce faire, vous devez définir une classe qui étend la classe php_user_fitler avec les membres et méthodes définies ci-dessous. Lorsque vous réalisez des opérations de lecture et d'écriture dans le flôt auquel votre filtre est attaché, PHP passera les données à travers votre filtre (et tous les autres filtres attachés), de façon à ce que les données soient modifiées telles que désiré. Vous devez implémenter les méthodes telles que décrit ci-dessous, sous peine de comportement indéfini. stream_filter_register retourne FALSE si le nom de filtre filtername est déjà utilisé. int filter ( resource in , resource out , int &consumed , bool closing )Cette méthode est appelé à chaque fois que des données sont lues ou écrites dans le flôt attaché (avec des fonctions comme fread ou fwrite ). Le paramètre in est une ressource qui pointe sur une bucket brigade qui contient un ou plusieurs objet bucket contenant les données à filtrer. out est une autre ressource qui pointe sur une bucket brigade dans laquelle les donnée seront placées. consumed , qui doit toujours être déclaré par référence, doit être incrémenté de la taille de données que votre filtre lit et modifie. Dans la plupart des cas, cela signifie que vous devrez incrémenter consumed avec $bucket->datalen pour chaque $bucket . Si le flôt est en cours de fermeture (et par conséquent, cela sera le dernier passage dans la chaîne de filtres), le paramètre closing vaudra TRUE La méthode filter doit retourner l'une des trois valeurs suivantes : PSFS_PASS_ON indique la réussite, et les données sont dans le paramètre out , une bucket brigade . PSFS_FEED_ME indique que le filtre n'a aucune données à retourner, et requiert d'autres données du flôt. PSFS_ERR_FATAL indique que le flôt a rencontré une erreur fatale, et ne peut continuer. Si aucune valeur n'est retournée par cette méthode, PSFS_ERR_FATAL est utilisé. void oncreate ( void )Cette méthode est appelée durant l'instantiation du filtre. Si votre filtre alloue ou initialise d'autres ressources (comme des buffers), c'est le moment de le faire. void onclose ( void )Cette méthode est appelée durant l'extinction du filtre (généralement, lorsque le flôt est fermé), et est exécuté après l'appel de la fonction flush . Si aucune ressource a été allouée ou créée durant oncreate() , c'est le moment de les libérer. L'exemple ci-dessous implémente un filtre appelé rot13 , sur le flôt foo-bar.txt , qui réalise un chiffrement de type ROT-13 sur toutes les lettres lue ou écrite dans le flôt.
Voir aussi stream_register_wrapper , stream_filter_prepend et stream_filter_append |
<< | stream_filter_register | >> |
stream_filter_prepend | Flôts | stream_get_filters |