(PHP 4 >= 4.3.0, PHP 5)
stream_get_meta_data — Lit les en-têtes et données méta des flux
$stream
)
Retourne les informations disponibles sur le flux stream.
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 et des gestionnaires 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 et des gestionnaires 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.