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
 .
     
 |