(PHP 4 >= 4.3.0, PHP 5, PHP 7)
stream_get_meta_data — Lit les en-têtes et données méta des flux
$stream
) : array
Retourne les informations disponibles sur le flux stream.
streamLe 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.
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())
seekable (booléen) : si on peut rechercher dans le flux courant.
uri (chaîne de caractères) : l'URI/nom de fichier associé à ce flux.
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.