Lettura dei file con PHP
Leggere il contenuto dei file usando file_get_contents e fopen/fread.
Lettura dei file con PHP è una lezione PHP Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento PHP Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso PHP Academy include 4 lezioni in totale.
PHP e il file system
PHP può leggere, scrivere e gestire i file nel file system del server. Funzioni fondamentali per la lettura:
file_get_contents()— legge l'intero file come stringafopen()+fread()— lettura basata su flussifile()— legge il file in un array di righe
file_get_contents()
Il modo più semplice per leggere l'intero contenuto di un file in una stringa:
<?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';
}Verifica dell'esistenza di un file
Verifichi sempre l'esistenza del file prima di leggerlo, per evitare errori:
<?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() — lettura in un array
file() legge un file e restituisce ogni riga come elemento di un array:
<?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
Lettura a basso livello tramite flussi per i file di grandi dimensioni: consente di elaborarli senza caricarli interamente in memoria:
<?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 per la lettura riga per riga
fgets() legge una riga alla volta, riducendo l'uso della memoria per i file di grandi dimensioni:
<?php
$handle = fopen('server.log', 'r');
while (($line = fgets($handle)) !== false) {
if (str_contains($line, 'ERROR')) {
echo 'Found error: ' . $line;
}
}
fclose($handle);Lettura di file remoti
file_get_contents() può leggere anche da URL HTTP se allow_url_fopen è abilitato:
<?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 fornisce un'interfaccia orientata agli oggetti per le operazioni sui file:
<?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)Lettura di file JSON
Un modello comune consiste nel leggere e decodificare un file di configurazione 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');Informazioni sui file
Ottenga i metadati di un file senza leggerne il contenuto:
<?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']; // jpgBlocco dei file
Utilizzi il blocco dei file per evitare conflitti tra scritture simultanee:
<?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);Verifica rapida
Quale funzione PHP legge un intero file in una stringa con una sola chiamata?
Riepilogo: lettura dei file
Elementi fondamentali della lettura dei file:
file_get_contents()— intero file come stringafile()— file come array di righefopen/fread/fclose— flusso per i file di grandi dimensionifgets()— lettura tramite flusso riga per riga- Verifichi sempre prima file_exists e is_readable
- Utilizzi flock per garantire la sicurezza degli accessi simultanei
Domande Frequenti
La lezione «Lettura dei file con PHP» è gratuita?
Sì — il testo completo di «Lettura dei file con PHP» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso PHP Academy, passa a CoddyKit PRO. Il corso PHP Academy include 4 lezioni in totale.
Cosa imparerò in «Lettura dei file con PHP»?
Leggere il contenuto dei file usando file_get_contents e fopen/fread. Eserciti PHP Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare PHP Academy?
Non è richiesta alcuna esperienza precedente. PHP Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Lettura dei file con PHP»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione PHP Academy?
Sì. Ogni lezione PHP Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Lettura dei file con PHP
- Scrittura e aggiunta ai file
- Gestione delle directory
- Gestione degli upload di file