9.1 API de flux : les auteurs d'extensions
9 PHP et le moteur interne Zend
Manuel PHP
. Présentation ->Eléments de bases . Les flux qui sont des ressources
|
9.1.2 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 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.
| 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 |
|