Lire des fichiers avec PHP
Lire le contenu de fichiers avec file_get_contents et fopen/fread.
Lire des fichiers avec PHP est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 4 leçons au total.
PHP et le système de fichiers
PHP peut lire, écrire et gérer des fichiers sur le système de fichiers du serveur. Voici les principales fonctions de lecture :
file_get_contents()— lire un fichier entier sous forme de chaînefopen()+fread()— lecture sous forme de fluxfile()— lire un fichier dans un tableau de lignes
file_get_contents()
La manière la plus simple de lire tout le contenu d'un fichier dans une chaîne :
<?php
$content = file_get_contents('/var/www/html/data.txt');
if ($content === false) {
echo 'Could not read file';
} else {
echo $content;
echo strlen($content) . ' bytes';
}Vérifier l'existence d'un fichier
Vérifiez toujours l'existence du fichier avant de le lire afin d'éviter les erreurs :
<?php
$path = '/var/data/config.json';
if (!file_exists($path)) {
die('Config file not found');
}
if (!is_readable($path)) {
die('No permission to read file');
}
$json = file_get_contents($path);
$config = json_decode($json, true);file() — lire dans un tableau
file() lit un fichier et renvoie chaque ligne comme élément d'un tableau :
<?php
$lines = file('data.csv', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($lines as $lineNum => $line) {
echo ($lineNum + 1) . ': ' . $line . PHP_EOL;
}fopen, fread, fclose
Lecture de flux de bas niveau pour les fichiers volumineux : traitez-les sans tout charger en mémoire :
<?php
$handle = fopen('large_file.txt', 'r');
if ($handle === false) die('Cannot open file');
// Read 1KB at a time
while (!feof($handle)) {
$chunk = fread($handle, 1024);
echo $chunk;
}
fclose($handle);fgets pour lire ligne par ligne
fgets() lit une ligne à la fois, ce qui économise la mémoire pour les fichiers volumineux :
<?php
$handle = fopen('server.log', 'r');
while (($line = fgets($handle)) !== false) {
if (str_contains($line, 'ERROR')) {
echo 'Found error: ' . $line;
}
}
fclose($handle);Lire des fichiers distants
file_get_contents() peut également lire des URL HTTP si allow_url_fopen est activé :
<?php
$json = file_get_contents('https://api.example.com/data.json');
// Prefer cURL for more control and error handling
$ch = curl_init('https://api.example.com/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);SplFileObject
SplFileObject fournit une interface OO pour les opérations sur les fichiers :
<?php
$file = new SplFileObject('data.txt', 'r');
foreach ($file as $lineNum => $line) {
echo $lineNum . ': ' . $line;
}
// Read specific line:
$file->seek(5);
echo $file->current(); // line 6 (0-indexed)Lire des fichiers JSON
Un schéma courant consiste à lire et décoder un fichier de configuration JSON :
<?php
function loadJsonConfig(string $path): array {
if (!file_exists($path)) {
throw new RuntimeException("Config not found: $path");
}
$json = file_get_contents($path);
$data = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new RuntimeException('Invalid JSON: ' . json_last_error_msg());
}
return $data;
}
$cfg = loadJsonConfig('/app/config.json');Informations sur les fichiers
Obtenez les métadonnées d'un fichier sans lire son contenu :
<?php
$path = '/var/www/html/image.jpg';
echo filesize($path); // bytes
echo filetype($path); // 'file'
echo filemtime($path); // last modified timestamp
echo date('Y-m-d', filemtime($path));
$info = pathinfo($path);
echo $info['dirname']; // /var/www/html
echo $info['basename']; // image.jpg
echo $info['extension']; // jpgVerrouiller les fichiers
Utilisez le verrouillage des fichiers pour empêcher les conflits d'écriture simultanés :
<?php
$handle = fopen('counter.txt', 'r+');
if (flock($handle, LOCK_EX)) { // exclusive lock
$count = (int) fread($handle, 20);
$count++;
fseek($handle, 0);
fwrite($handle, $count);
fflush($handle);
flock($handle, LOCK_UN); // release
}
fclose($handle);Vérification rapide
Quelle fonction PHP lit tout un fichier dans une chaîne en un seul appel ?
Récapitulatif : lecture des fichiers
Les bases de la lecture des fichiers :
file_get_contents()— fichier entier sous forme de chaînefile()— fichier sous forme de tableau de lignesfopen/fread/fclose— flux pour les fichiers volumineuxfgets()— lecture en flux, ligne par ligne- Vérifiez toujours d'abord file_exists et is_readable
- Utilisez flock pour garantir la sécurité des accès simultanés
Questions Fréquemment Posées
La leçon « Lire des fichiers avec PHP » est-elle gratuite ?
Oui — le texte complet de « Lire des fichiers avec PHP » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Lire des fichiers avec PHP » ?
Lire le contenu de fichiers avec file_get_contents et fopen/fread. Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Lire des fichiers avec PHP » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Lire des fichiers avec PHP
- Écrire dans des fichiers et y ajouter du contenu
- Travailler avec les répertoires
- Gérer les téléversements de fichiers