options d'ouverture de flux

options d'ouverture de flux -- Affectent les fonctions de flux

Description

Plusieurs valeurs peuvent êter combinées avec l'opérateur OR.

IGNORE_PATH

C'est l'option par défaut pour les flux. Elle indique que l'include_path ne sera pas fouillé pour trouver le fichier demandé.

USE_PATH

Requiert que l'include_path soit fouillé à la recherche du fichier demandé.

IGNORE_URL

Requiert que les gestionnaires d'URL soient ignorés pour traiter ce flux. Les gestionnaires qui ne traitent pas d'URL seront utilisé lors du décodate du chemin. Il n'y a pas de contraire à cette option : l'API des flux utilisera tous les gestionnaires par défaut.

IGNORE_URL_WIN

Sous Windows, c'est l'équivalent de IGNORE_URL. Sur tous les autres systèmes, cette option n'a aucun effet.

ENFORCE_SAFE_MODE

Requiert que le gestionnaire de flux effectue les vérifications liées au safe_mode sur le fichier à ouvrir avant e le faire. En omettant cette option, le safe_mode sera ignoré et n'importe quel fichier sera ouvert par PHP, du mometn qu'il a les droits pour le faire.

REPORT_ERRORS

Si cette option est utilisée, et qu'il y a une erreur durant l'ouverture du fichier ou de l'URL, l'API va appeler automatiquement la fonction php_error pour vous. C'est pratique car le chemin peut contenir des informations le login et mot de passe, que vous souhaitez ou pas afficher (les afficher serait un trou de sécurité). Lorsque les API des flux génèrent une erreur, elles commencent par supprimer les informations de login et mot de passe, afin que l'affichage des données soit sans souci.

STREAM_MUST_SEEK

Cette option est pratique lorsque votre extension doit réellement être capable déplacer le pointeur de fichier dans le flux. Certains flots ne disposent pas d'un tel pointeur. Cette option s'assure que le flux va supporter ce opinteur. Si il ne le fait pas, le flux sera copié dans un fichier temporaire (qui peut être un fichier ou un bloc de mémoire), qui supportera le pointeur. Notez bien que cette option est inutile lorsque vous voulez déplacer le pointeur de fichier et y écrire, car le flux que vous allez utiliser n'est peut être pas votre ressource initiale, mais un fichier en cache.

Note : Si la ressource demandée est sur le réseau, cette option va bloquer la fonction d'ouverture jusqu'à ce que le contenu complet du fichier soit téléchargé.

STREAM_WILL_CAST

Si votre extension utilise une librairie tierce qui s'attend à recevoir un pointeur FILE* ou un pointeur de fichier, vous pouvez utiliser cette option pour demander à l'API d'ouvrir la ressource, mas d'éviter d'utiliser les buffers. Vous pouvez alors utiliser php_stream_cast() pour obtenir un FILE* ou un pointeur de fichier, que vous transmettrez à la librairie.

Ceci est particulièrement pratique lorsque vous accédez à des URL via HTTP, qui vont diffuser des données, mais dont le corps ne sera accessible qu'après une quantité indéterminée d'en-têtes.

Comme cette option désactive les buffers, vous pouvez rencontrer des performances moins bonnes qu'avec les API habituelles. C'est parfaitement compréhensible, car vous avec indiqué aux flux que vous alliez utiliser les fonctions de bases de l'implémentation. Utilisez donc cette option uniquement si vous en avez besoin.