Eléments de bases

Utiliser les flux ressemble énormément à l'utilisation des fonctions d'entrée/sortie standard ANSI streams. La principale différence est que vous devez créer le pointeur de flux d'abord. Dans la plupart des cas, vous utiliserez la fonction php_stream_open_wrapper() pour l'obtenir. Cette fonction ressemble à fopen(), comme le montre l'exemple ci-dessous :

Exemple 63-1. Exemple de flux qui affiche la page de www.php.net

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];
        
        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

La table ci-dessous montre les fonctions de flux équivalentes aux fonctions ANSI. Sauf indication contraire, les fonctionnalités sont les mêmes.

Tableau 63-1. ANSI stdio equivalent functions in the Streams API

Fonction ANSIFonction Flux PHPNotes
fopenphp_stream_open_wrapperLes flux incluent des paramètres supplémentaires
fclosephp_stream_close 
fgetsphp_stream_gets 
freadphp_stream_readLe paramètre nmemb est suppos avoir la valeur 1 : le prototype ressemble plutôt à read(2)
fwritephp_stream_writeLe paramètre nmemb est suppos avoir la valeur 1 : le prototype ressemble plutôt à write(2)
fseekphp_stream_seek 
ftellphp_stream_tell 
rewindphp_stream_rewind 
feofphp_stream_eof 
fgetcphp_stream_getc 
fputcphp_stream_putc 
fflushphp_stream_flush 
putsphp_stream_putsIdentique à puts, et non pas à fputs
fstatphp_stream_statLes informations des flux sont plus riches

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:02:00