Position actuelle: Accueil> Derniers articles> file_get_contents Comment lire le contenu du fichier local? Expliquez l'explication détaillée de la méthode de lecture de fichiers PHP

file_get_contents Comment lire le contenu du fichier local? Expliquez l'explication détaillée de la méthode de lecture de fichiers PHP

gitbox 2025-09-21

En PHP, la lecture du contenu d'un fichier local est une opération courante. file_get_contents () est une fonction très pratique qui vous permet de lire directement le contenu du fichier dans une chaîne. Cette fonction peut non seulement lire des fichiers locaux, mais également lire des fichiers sur le réseau, ou même des fichiers distants. Cet article expliquera en détail comment utiliser file_get_contents () pour lire le contenu des fichiers locaux et introduire des utilisations et des précautions courantes.

1. Présentation de la fonction File_get_Contents ()

file_get_contents () est une fonction intégrée PHP qui peut lire le contenu d'un fichier et renvoyer le contenu du fichier en tant que chaîne. La syntaxe de base d'une fonction est la suivante:

 <span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$flags</span></span><span> = </span><span><span class="hljs-number">0</span></span><span> [, resource </span><span><span class="hljs-variable">$context</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> = -</span><span><span class="hljs-number">1</span></span><span> [, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$maxlen</span></span><span> = </span><span><span class="hljs-literal">NULL</span></span><span> ]]] )
</span></span>
  • $ nom de fichier : le nom de fichier à lire, prend en charge les chemins relatifs ou absolus.

  • $ Flags : Paramètre facultatif pour définir certaines options de lecture (par exemple, il peut être défini sur file_use_include_path ou file_binary ).

  • $ Context : une ressource Stream_Context valide qui spécifie le contexte du flux, la valeur par défaut est nul .

  • $ offset : la position de début du fichier est lue, la valeur par défaut est -1 , indiquant qu'elle est lue à partir de la position de début du fichier.

  • $ Maxlen : le nombre maximum d'octets à lire, la valeur par défaut est nul , ce qui signifie lire l'intégralité du fichier.

2. Méthode d'utilisation de base

La façon la plus simple de l'utiliser est de passer directement le chemin du fichier en tant que paramètre, l'exemple est le suivant:

 <span><span><span class="hljs-variable">$file_content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$file_content</span></span><span>;
</span></span>

Le code ci-dessus lit le contenu du fichier Exemple.txt et le publie sur la page. Si le fichier existe, le contenu du fichier est renvoyé sous forme de chaîne. Si le fichier n'existe pas, la fonction renvoie false et vous devez faire face aux erreurs possibles.

3. Gérer la situation où le fichier n'existe pas

Habituellement, nous devons juger si le fichier existe pour éviter les erreurs après avoir échoué à lire le fichier. Vous pouvez utiliser la fonction file_exists () ou is_file () pour vérifier si le fichier existe:

 <span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'example.txt'</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>)) {
    </span><span><span class="hljs-variable">$file_content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$file_content</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'Le fichier n&#39;existe pas'</span></span><span>;
}
</span></span>

Alternativement, vous pouvez également utiliser le suppresseur d' erreur pour empêcher la sortie du message d'erreur:

 <span><span><span class="hljs-variable">$file_content</span></span><span> = @</span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$file_content</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">'La lecture des fichiers a échoué'</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$file_content</span></span><span>;
}
</span></span>

Mais il n'est pas recommandé d'utiliser @ trop car il peut masquer d'autres erreurs.

4. Utilisez File_get_Contents () pour lire les fichiers volumineux

file_get_contents () lira le fichier entier par défaut. Si le fichier est très important, cela peut provoquer une utilisation excessive de la mémoire et même des accidents de programme. Si vous n'avez besoin que de lire une partie du fichier ou que vous souhaitez lire le fichier par bloc, vous pouvez utiliser les paramètres $ offset et $ maxlen .

Par exemple, lisez 100 octets à partir du début d'un fichier:

 <span><span><span class="hljs-variable">$file_content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-literal">null</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$file_content</span></span><span>;
</span></span>

5. Définir le contexte de la lecture de fichiers

file_get_contents () prend également en charge la définition du contexte de la lecture de fichiers, vous permettant de contrôler la façon dont les fichiers sont accessibles (par exemple, le définition du proxy, du délai d'attente, etc.). Si vous devez définir le contexte, vous pouvez utiliser la fonction Stream_Context_Create () pour créer une ressource de contexte.

Exemple: définissez la limite de délai d'expiration

 <span><span><span class="hljs-variable">$options</span></span><span> = [
    </span><span><span class="hljs-string">'http'</span></span><span> =&gt; [
        </span><span><span class="hljs-string">'timeout'</span></span><span> =&gt; </span><span><span class="hljs-number">5</span></span><span> </span><span><span class="hljs-comment">// Définissez le temps mort sur 5 Deuxième</span></span><span>
    ]
];

</span><span><span class="hljs-variable">$context</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_context_create</span></span><span>(</span><span><span class="hljs-variable">$options</span></span><span>);
</span><span><span class="hljs-variable">$file_content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-variable">$context</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$file_content</span></span><span>;
</span></span>

6. Utilisez File_get_Contents () pour lire les fichiers distants

file_get_contents () prend en charge la lecture non seulement des fichiers locaux, mais également des fichiers distants. Il vous suffit de fournir l'adresse URL. Par exemple, lire le contenu d'une page Web:

 <span><span><span class="hljs-variable">$url</span></span><span> = </span><span><span class="hljs-string">'https://www.example.com'</span></span><span>;
</span><span><span class="hljs-variable">$html_content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-variable">$url</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$html_content</span></span><span>;
</span></span>

Lorsque vous devez lire les fichiers distants, assurez-vous que l'option ALLOT_URL_FOPEN dans la configuration PHP est activée. S'il n'est pas activé, il peut être activé via le fichier de configuration php.ini .

7. Choses à noter

  • Problèmes de performances : lorsque le fichier est très important, l'utilisation de file_get_contents () pour lire l'intégralité du fichier peut provoquer une utilisation excessive de la mémoire. Vous pouvez envisager d'utiliser des fonctions fopen () , fgets () ou fread () pour lire le contenu du fichier par ligne ou par bloc.

  • Gestion des erreurs : si la lecture du fichier échoue, File_get_Contents () renvoie False . Par conséquent, lorsque vous l'utilisez, assurez-vous de vérifier la valeur de retour pour éviter les erreurs imprévisibles.

  • Autorisations de fichiers : assurez-vous que le processus PHP a des autorisations suffisantes sur les fichiers à lire, en particulier dans les environnements de production, où les paramètres d'autorisation incorrects peuvent entraîner la lecture du fichier.

8. Résumé

file_get_contents () est une fonction de lecture de fichiers très simple, adaptée à la lecture de fichiers plus petits ou à la lecture du contenu global d'un fichier. Pour les fichiers volumineux, la lecture à la demande doit être considérée pour enregistrer la mémoire. En définissant le contexte, vous pouvez également contrôler le comportement de la lecture de fichiers, en améliorant le scénario d'application de file_get_contents () .

Si vous avez des exigences de lecture de fichiers plus complexes, telles que la lecture de lignes ligne par ligne ou le traitement des fichiers volumineuses, vous pouvez envisager d'utiliser d'autres fonctions de fonctionnement de fichiers telles que fopen () , fread () ou file () .