Services webmasters
Partenaires
Jeux concours gratuits
 
php_stream_make_seekable
<<<
php_stream_cast php_stream_can_cast
>>>

9.1.4 Référence des API communes de flôts
9.1 API de flôts les auteurs d'extensions
9 PHP API: Interface pour les extensions
 Manuel PHP

php_stream_stat_path
php_stream_stat
php_stream_open_wrapper
php_stream_read
php_stream_write
php_stream_eof
php_stream_getc
php_stream_gets
php_stream_close
php_stream_flush
php_stream_seek
php_stream_tell
php_stream_copy_to_stream
php_stream_copy_to_mem
php_stream_make_seekable
->php_stream_cast
php_stream_can_cast
php_stream_is_persistent
php_stream_is
php_stream_passthru
php_register_url_stream_wrapper
php_unregister_url_stream_wrapper
php_stream_open_wrapper_ex
php_stream_open_wrapper_as_file
php_stream_filter_register_factory
php_stream_filter_unregister_factory

9.1.4.16 php_stream_cast()Convertit un flôt en une autre forme, comme un FILE* ou une socket

[ Exemples avec hp_stream_cast ]   CVS uniquement

int  php_stream_cast ( php_stream *   stream , int   castas , void **   ret , int   flags )

php_stream_cast tente de convertir le flôt stream en un autre ressource indiqué par castas . Si ret est NULL, le flôt est interrogé pour savoir une telle conversoin est posible, sans effectuer réellemnt la conversion (mais certains état interne pourrait être changés dans ce cas). Si flags vaut REPORT_ERRORS , un message d'erreur apparaîtra si une erreur survient durant la conversion.

Note

Cette fonction retourne SUCCESS en cas de réussite et FAILURE en cas d'échec. Soyez prévenu que vous devez faire une comparaison explicite avec SUCCESS ou FAILURE à cause des valeurs sous jacentes de ces constantes. Une simple comparaison d'expression booléenne ne sera pas interprétée comme vous le souhaitez.

Valeur Signification
PHP_STREAM_AS_STDIO Un pointeur ANSI FILE* qui représente le flôt
PHP_STREAM_AS_FD Un pointeur de fichier de type POSIX qui représente le flôt
PHP_STREAM_AS_SOCKETD Un pointeur de socket réseau qui représente le flôt

En plus des types de ressources basiques ci-dessus, le processus de conversion peut être modifié en utilisant les paramètres ci-dessous, ou bien en utilisant l'opérateur OR pour combiner le type de ressource avec une ou plusieurs des valeurs suivantes :
Valeur Signification
PHP_STREAM_CAST_TRY_HARD Essaie aussi fort que possible, même si c'est au prix de quelques ressources supplémentaires, que la conversion réussisse
PHP_STREAM_CAST_RELEASE Informque l'API de flôt que d'autre code (possible une librairie tierce partie) sera responsable de la gestion des ressources de bas niveau. Cela fait que le flôt stream sera fermé de telle façon à ce que le gestionnaire soit préservé et retourné dans le paramètre ret . Si la fonction réussit, le paramètre stream doit être considéré comme fermé, et inutilisable en l'état.

Note

Si votre système supporte la fonction fopencookie (les systèmes utilisant la librairie glibc 2 ou plus récent), l'API de flôt sera toujours capable de créer des pointeurs de fichiers de type ANSI FILE* pour tous les flôts. Même si c'est extrêmement utile pour passer des flôts PHP à des librairie tierce partie, un tel système n'est pas portable. Il est demandé que vous considériez la portabilité e vos fonctions avant de diffuser votre extension. Si l'utilisation de fopencookie() n'est pas désirable, il est recommandé d'interroger le flôt pour voir si il supporte naturellement la conversion en FILE* en utilisant la fonction php_stream_is

Note

Si vous demandez une socket réseau à la place d'un FILE*, l'API de flôts va utiliser la fonction fdopen pour la créer pour vous. Soyez prévenu que faire cela risque de perdre les données qui ont été mises en buffer dans le flôt, si vous mélanger des appels de l'API de flôt et les appels standards ANSI.

Voir aussi php_stream_is et php_stream_can_cast .

<< php_stream_cast >>
php_stream_make_seekable Référence des API communes de flôts php_stream_can_cast
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -