Manuel PHP
Précédent | Chapitre 44. API de flux : les auteurs d'extensions | Suivant

# 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 44-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 44-1. Fonctions équivalentes ANSI stdio dans l'API de flux

Fonction ANSI Stdio | Fonction Flux PHP | Notes
--- | --- | ---
fopen | php_stream_open_wrapper | Les flux incluent des paramètres supplémentaires
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | Le paramètre nmemb est suppos avoir la valeur 1 : le prototype ressemble plutôt à read(2)
fwrite | php_stream_write | Le paramètre nmemb est suppos avoir la valeur 1 : le prototype ressemble plutôt à write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Identique à puts, et non pas à fputs
fstat | php_stream_stat | Les informations des flux sont plus riches

Précédent | Sommaire | Suivant
API de flux : les auteurs d'extensions | Niveau supérieur | Les flux qui sont des ressources