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.15 php_stream_make_seekable()Convertit un flôt en flôt avec un pointeur de position[ Exemples avec hp_stream_make_seekable ] CVS uniquement
int
php_stream_make_seekable (
php_stream *
origstream
,
php_stream **
newstream
,
int
flags
)
php_stream_make_seekable
vérifie si
origstream
dispose d'un pointeur de potision. Si ce n'est pas le cas, il va copier les données
du flôt dans un autre flôt temporaire, et disposant d'un pointeur de position.
Si cela fonctionne,
newstream
sera un flôt valide
même si le flôt original avait déjà un pointeur de position.
flags
vous permet de spécifier votre préférence
pour le flôt retourné : utilisez la constante
PHP_STREAM_NO_PREFERENCE
pour utiliser le flôt à pointeur de position par défaut (qui utilise la
mémoire, mais passe automatiquement sur un fichier si le fichier devient trop grand),
ou bien utilisez
PHP_STREAM_PREFER_STDIO
pour utiliser
un fichier temporaire classique.
Valeur |
Signification |
PHP_STREAM_UNCHANGED |
Le flôt original avait déjà son pointeur de position.
newstream
vaut
origstream
.
|
PHP_STREAM_RELEASED |
Le flôt originl n'avait pas pointeur de position, et il a été
détruit. Vous n'avez plus accès à
origstream
.
|
PHP_STREAM_FAILED |
Une erreur est survenue lors de la conversion.
newstream
vaut NULL;
origstream
est toujours valide.
|
PHP_STREAM_CRITICAL |
Une erreur est survenue lors de la conversion de
origstream
,
qui est maintenant dans un état indéterminé.
newstream
vaut NULL et il est très recommandé que
vous vous fermiez
origstream
.
|
Note |
Si vous devez déplacer le pointeur et écrire dans le flôt, n'utilisez
pas cette fonction, car le flôt retourné est un flôt mis en cache. Il
n'est pas garantit qu'il soit lié à la ressource originale.
|
Note |
Si vous avez uniquement de déplacer le pointeur de position vers l'avant,
il n'y a pas besoin d'appeler cette fonction, car l'API va automatiquement
émuler ce fonctionnement avec le paramètre whence à la valeur
SEEK_CUR
.
|
Note |
Si
origstream
repose sur le réseau, cette fonction
va se bloquer jusqu'à ce que tout le contenu soit téléchargé.
|
Note |
Ne JAMAIS appeler cette fonction avec un flôt
origstream
qui
est une référence à un pointeur de fichier dans un script PHP. Cette
fonction pourrait alors fermer le fichier, ce qui conduira à un crash au prochain
accès au pointeur.
|
Note |
Dans de nombreux cas, cette fonction ne peut réussir que si
origstream
vient d'être tout juste ouvert, et qu'aucune
données n'ont été mises dans les caches de la couche de flôt. Pour
cette raison, et parceque cette fonction est compliquée à utiliser
correctement, il est recommandé que vous utilisiez la fonction
php_stream_open_wrapper
en lui passant la constante
PHP_STREAM_MUST_SEEK
dans vos options, au lieu d'appeler
cette fonction directement.
|
|