file_get_contents
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
file_get_contents — Lit tout un fichier dans une chaîne
Description
$filename
[, bool $use_include_path
= false
[, resource $context
[, int $offset
= 0
[, int $maxlen
]]]] )
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 une chaîne de caractères. 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().
Liste de paramètres
-
filename
-
Nom du fichier à lire.
-
use_include_path
-
Note:
Depuis PHP 5, la constante
FILE_USE_INCLUDE_PATH
peut être utilisée pour déclencher la recherche dans le chemin d'inclusion. -
context
-
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
. -
offset
-
La position à partir de laquelle on commence à lire dans le flux original.
Le déplacement dans le fichier (
offset
) n'est pas supporté sur des fichiers distants. Si vous tentez de vous déplacer dans un fichier qui n'est pas un fichier local peut fonctionner sur les petits déplacements, mais le comportement peut ne pas être attendu car le processus utilise le flux du buffer. -
maxlen
-
La taille maximale des données à lire. Le comportement par défaut est de lire jusqu'à la fin du fichier. Ce paramètre s'applique sur le flux traité par les filtres.
Valeurs de retour
Retourne les données lues ou FALSE
si une erreur survient.
Cette fonction peut
retourner FALSE
, mais elle peut aussi retourner une valeur équivalent à
FALSE
. Veuillez lire la section sur
les booléens pour plus d'informations.
Utilisez l'opérateur ===
pour tester la valeur de retour exacte de cette fonction.
Erreurs / Exceptions
Émet une alerte de type E_WARNING
si,
filename
ne peut être trouvé, si le
paramètre maxlength
est plus petit que zéro,
ou si le déplacement à la position offset
spécifié dans le flux échoue.
Exemples
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);
?>
Notes
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é. Voyez fopen() pour plus de détails sur la façon de spécifier le nom du fichier. Reportez-vous aux Liste des protocoles et des gestionnaires supportés pour plus d'informations sur les capacités des différents gestionnaires, les notes sur leur utilisation, ainsi que les informations sur leurs variables prédéfinies fournies.
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. PHP peut détecter automatiquement le bogue d'un serveur IIS lors de l'ouverture du flux en utilisant https:// et supprimera cet avertissement pour vous. Si vous utilisez fsockopen() pour créer un socket ssl://, vous devez vous occuper vous-même de supprimer l'erreur.
Voir aussi
- file() - Lit le fichier et renvoie le résultat dans un tableau
- fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
- fread() - Lecture du fichier en mode binaire
- readfile() - Affiche un fichier
- file_put_contents() - Écrit un contenu dans un fichier
- stream_get_contents() - Lit tout un flux dans une chaîne
- stream_context_create() - Crée un contexte de flux
- $http_response_header
Version en cache
21/11/2024 20:10:50 Cette version de la page est en cache (à la date du 21/11/2024 20:10:50) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.file-get-contents.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.