(PHP 4 >= 4.3.0, PHP 5)
stream_get_meta_data — Lit les en-têtes et données méta des flux
Retourne les informations disponibles sur le flux stream.
Le flux peut être n'importe quel flux créé par les fonctions fopen(), fsockopen() ou pfsockopen().
Le tableau résultant peut contenir les éléments suivants :
timed_out (booléen) : TRUE si le flux a atteint de délai d'expiration en attendant des données durant le dernier appel aux fonctions fread() et fgets().
blocked (booléen) : TRUE si le flux est en mode bloquant. Voir aussi stream_set_blocking().
eof (booléen) : TRUE si le flux a atteint la fin du fichier. Notez que pour les sockets, cette valeur peut être TRUE même si unread_bytes est non nul. Pour déterminer s'il reste des données à lire, utilisez plutôt la fonction feof().
unread_bytes (entier) : le nombre d'octets actuellement placés dans le buffer interne à PHP.
Note: Vous ne devriez pas utiliser cette valeur dans un script.
stream_type (chaîne de caractères) : un nom, qui décrit l'implémentation sous-jacente de flux.
wrapper_type (chaîne de caractères) : un nom qui décrit le gestionnaire de protocole pour ce flux. Voyez Liste des protocoles supportés pour plus d'informations sur les gestionnaires.
wrapper_data (mixed) : des données spécifiques au gestionnaire liés à ce flux. Voyez Liste des protocoles supportés pour plus d'informations sur les gestionnaires et leurs données.
filters (tableau) : un tableau contenant les noms de tous les filtres qui ont été attachés à ce flux. La documentation sur les filtres peut être trouvée sur l'annexe concernant les filtres.
mode (chaîne de caractères) : le type d'accès requis pour ce flux ( voir le tableau 1 de la référence de la fonction fopen())
seakable (booléen) : si on peut rechercher dans le flux courant.
uri (chaîne de caractères) : l'URI/nom de fichier associé à ce flux.
Version | Description |
---|---|
5.0.0 | Les élément suivants ont été ajoutés dans le tableau retourné : mode, seekable, et uri. |
4.3.0 | Les éléments suivants ont été ajoutés dans le tableau retourné : stream_type, wrapper_type, wrapper_data et filters. |
4.3.0 | socket_get_status() est un alias de cette fonction. Avant PHP 4.3.0, elle était utilisée pour obtenir les quatre premiers éléments, uniquement pour les flux de sockets. |
Exemple #1 Exemple avec stream_get_meta_data()
<?php
$url = 'http://www.example.com/';
if (!$fp = fopen($url, 'r')) {
trigger_error("Impossible d'ouvrir l'URL ($url)", E_USER_ERROR);
}
$meta = stream_get_meta_data($fp);
print_r($meta);
fclose($fp);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Array ( [wrapper_data] => Array ( [0] => HTTP/1.1 200 OK [1] => Server: Apache/2.2.3 (Red Hat) [2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT [3] => ETag: "b300b4-1b6-4059a80bfd280" [4] => Accept-Ranges: bytes [5] => Content-Type: text/html; charset=UTF-8 [6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com [6] => Connection: close [7] => Date: Fri, 16 Oct 2009 12:00:00 GMT [8] => Age: 1164 [9] => Content-Length: 438 ) [wrapper_type] => http [stream_type] => tcp_socket/ssl [mode] => r [unread_bytes] => 438 [seekable] => [uri] => http://www.example.com/ [timed_out] => [blocked] => 1 [eof] => )
Note: Cette fonction ne fonctionne pas sur les sockets créées avec l'extension socket.