(PHP 4 >= 4.3.0, PHP 5)
file_get_contents — Lit tout un fichier dans une chaîne
Identique à la fonction file(), hormis le fait que file_get_contents() retourne le fichier filename dans une chaîne, à partir de la position offset , et jusqu'à maxlen octets. En cas d'erreur, file_get_contents() retourne FALSE.
file_get_contents() est la façon recommandée pour lire le contenu d'un fichier dans un fichier. Elle utilisera un buffer en mémoire si ce mécanisme est supporté par votre système, afin d'améliorer les performances.
Note: Si vous ouvrez une URI avec des caractères spéciaux, comme des espaces, vous devez encoder cette URI avec la fonction urlencode().
Nom du fichier à lire.
Note: Pour toutes les versions antérieures à PHP 6, ce paramètre est appelé use_include_path et est du type bool. Depuis PHP 5, la constante FILE_USE_INCLUDE_PATH peut être utilisée pour déclencher la recherche dans le chemin d'inclusion.
La valeur de flags peut être n'importe quelle combinaison des drapeaux suivants (avec quelques restrictions), joints avec l'opérateur OR binaire (|).
Drapeau | Description |
---|---|
FILE_USE_INCLUDE_PATH | Recherche le fichier filename dans le dossier d'inclusion. Voir include_path pour plus d'informations. |
FILE_TEXT | Depuis PHP 6, l'encodage par défaut pour la lecture des données est UTF-8. Vous pouvez spécifier un encodage différent en créant un contexte personnalisé ou en modifiant celui par défaut en utilisant la fonction stream_default_encoding(). Ce drapeau ne peut être utilisé avec FILE_BINARY. |
FILE_BINARY | Avec ce drapeau, le fichier est lu en mode binaire. C'est la configuration par défaut et ne peut être utilisé avec FILE_TEXT. |
Une ressource de contexte valide, créée avec la fonction stream_context_create(). Si vous n'avez pas besoin d'utiliser un contexte particulier, vous pouvez ignorer ce paramètre en affectant la valeur NULL.
La position à partir de laquelle on commence à lire.
La taille maximal de données à lire.
Retourne les données lues, ou FALSE si une erreur survient.
Exemple #1 Lit et affiche le code HTML d'un site Web
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>
Exemple #2 Recherche un fichier dans le include_path
<?php
// avant PHP 5
$file = file_get_contents('./people.txt', true);
// depuis PHP 5
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>
Exemple #3 Lit une section d'un fichier
<?php
// Lit 14 caractères à partir du 20ème
$section = file_get_contents('./people.txt', NULL, NULL, 20, 14);
var_dump($section);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
string(14) "lle Bjori Ro"
Exemple #4 Utilisation des contextes de flux
<?php
// Création d'un flux
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Accès à un fichier HTTP avec les entêtes HTTP indiqués ci-dessus
$file = file_get_contents('http://www.example.com/', false, $context);
?>
Version | Description |
---|---|
6.0.0 | Le paramètre use_include_path a été remplacé par le paramètre flags . |
5.1.0 | Ajout des paramètres offset et maxlen . |
5.0.0 | Ajout du support du contexte. |
Note: Cette fonction gère les chaînes binaires.
Vous pouvez utiliser une URL comme nom de fichier avec cette fonction, si le gestionnaire fopen a été activée. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier et Liste des protocoles supportés pour une liste des protocoles URL supportés.
Lorsque vous utilisez SSL, le serveur IIS de Microsoft violera le protocole en fermant la connexion sans envoyer l'indicateur close_notify. PHP le reportera en tant que "SSL: Fatal Protocol Error" quand vous arrivez à la fin des données. L'astuce est de baisser le niveau de la directive error_reporting pour ne pas inclure les alertes. À partir de PHP 4.3.7, le bogue est détecté automatiquement lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer une socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.