PHP File Open/Read/Close

In this section, we will explain how to open, read, and close files on the server.

PHP Open File - fopen()

The better way to open a file is through the fopen() function. This function gives you more options than the readfile() function.

In this course, we will use the text file "webdictionary.txt":

AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = Lingua a Marche Estensibile

Il primo parametro di fopen() contiene il nome del file da aprire, il secondo parametro specifica il modo di apertura del file. Se la funzione fopen() non riesce ad aprire il file specificato, l'esempio seguente genererà un messaggio:

Esempio

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossibile aprire il file!");
echo fread($myfile, filesize("webdictionary.txt"));
fclose($myfile);
?>

Esempio di esecuzione

Suggerimento:Prossimamente impareremo le funzioni fread() e fclose().

Il file viene aperto con uno dei seguenti modi:

Modo Descrizione
r Apri il file per lettura. Il puntatore di file inizia all'inizio del file.
w Apri il file per scrittura. Elimina il contenuto del file o crea un nuovo file se non esiste. Il puntatore di file inizia all'inizio del file.
a Apri il file per scrittura. I dati esistenti nel file vengono conservati. Il puntatore di file inizia alla fine del file. Crea un nuovo file se non esiste.
x Crea un nuovo file per scrittura. Restituisce FALSE e un errore se il file esiste già.
r+ Apri il file per lettura/scrittura, il puntatore di file inizia all'inizio del file.
w+ Apri il file per lettura/scrittura. Elimina il contenuto del file o crea un nuovo file se non esiste. Il puntatore di file inizia all'inizio del file.
a+ Apri il file per lettura/scrittura. I dati esistenti nel file vengono conservati. Il puntatore di file inizia alla fine del file. Crea un nuovo file se non esiste.
x+ Crea un nuovo file per lettura/scrittura. Restituisce FALSE e un errore se il file esiste già.

PHP Leggi file - fread()

La funzione fread() legge il file aperto.

Il primo parametro di fread() contiene il nome del file da leggere, il secondo parametro specifica il numero massimo di byte da leggere.

Il seguente codice PHP legge tutto il file "webdictionary.txt":

fread($myfile, filesize("webdictionary.txt"));

PHP Chiudi file - fclose()

La funzione fclose() viene utilizzata per chiudere il file aperto.

Nota:Chiudere tutti i file dopo averli utilizzati è una buona abitudine di programmazione. Non vorrete che i file aperti occupino risorse del server.

fclose() richiede il nome del file da chiudere (o una variabile che contiene il nome del file):

<?php
$myfile = fopen("webdictionary.txt", "r");
// Alcuni codici da eseguire...
fclose($myfile);
?>

PHP Leggi riga di file - fgets()

La funzione fgets() viene utilizzata per leggere una riga da un file.

Esempio di output della prima riga del file "webdictionary.txt":

Esempio

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossibile aprire il file!");
echo fgets($myfile);
fclose($myfile);
?>

Esempio di esecuzione

Nota:Dopo la chiamata alla funzione fgets(), il puntatore del file si sposterà alla riga successiva.

Controllo End-Of-File PHP - feof()

La funzione feof() verifica se è stato raggiunto il "fine del file" (EOF).

feof() è molto utile per esplorare dati di lunghezza sconosciuta.

Esempio seguente legge il file "webdictionary.txt" riga per riga fino alla fine del file:

Esempio

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossibile aprire il file!");
// Output della singola riga fino alla fine del file
while(!feof($myfile)) {
  echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

Esempio di esecuzione

Lettura di un singolo carattere PHP - fgetc()

La funzione fgetc() serve a leggere un singolo carattere dal file.

Esempio seguente legge il file "webdictionary.txt" carattere per carattere fino alla fine del file:

Esempio

<?php
$myfile = fopen("webdictionary.txt", "r") or die("Impossibile aprire il file!");
// Output del singolo carattere fino alla fine del file
while(!feof($myfile)) {
  echo fgetc($myfile);
}
fclose($myfile);
?>

Esempio di esecuzione

Nota:Dopo la chiamata alla funzione fgetc(), il puntatore del file si sposterà al carattere successivo.

Manuale di riferimento Filesystem PHP

Per una guida completa al Filesystem di PHP, visitare il sito fornito da CodeW3C.com Manuale di riferimento Filesystem PHP.