PHP - File e I / O
Questo capitolo spiegherà le seguenti funzioni relative ai file:
- Apertura di un file
- Leggere un file
- Scrivere un file
- Chiusura di un file
Apertura e chiusura di file
Il PHP fopen()viene utilizzata per aprire un file. Richiede due argomenti che indicano prima il nome del file e poi la modalità in cui operare.
Le modalità dei file possono essere specificate come una delle sei opzioni in questa tabella.
Suor n | Modalità e scopo |
---|---|
1 | r Apre il file in sola lettura. Posiziona il puntatore del file all'inizio del file. |
2 | r+ Apre il file in lettura e scrittura. Posiziona il puntatore del file all'inizio del file. |
3 | w Apre il file solo in scrittura. Posiziona il puntatore del file all'inizio del file. e tronca il file a lunghezza zero. Se i file non lo fanno esiste quindi tenta di creare un file. |
4 | w+ Apre il file solo in lettura e scrittura. Posiziona il puntatore del file all'inizio del file. e tronca il file a lunghezza zero. Se i file non lo fanno esiste quindi tenta di creare un file. |
5 | a Apre il file solo in scrittura. Posiziona il puntatore del file alla fine del file. Se i file non esistono, tenta di creare un file. |
6 | a+ Apre il file solo in lettura e scrittura. Posiziona il puntatore del file alla fine del file. Se i file non esistono, tenta di creare un file. |
Se un tentativo di aprire un file fallisce, allora fopen restituisce un valore di false altrimenti restituisce a file pointer che viene utilizzato per ulteriori letture o scrittura su quel file.
Dopo aver apportato modifiche al file aperto è importante chiuderlo con l'estensione fclose()funzione. Ilfclose() richiede un puntatore al file come argomento e quindi restituisce true quando la chiusura riesce o false se fallisce.
Leggere un file
Una volta aperto un file utilizzando fopen() può essere letto con una funzione chiamata fread(). Questa funzione richiede due argomenti. Questi devono essere il puntatore del file e la lunghezza del file espressa in byte.
La lunghezza dei file può essere trovata utilizzando il filesize() funzione che prende il nome del file come argomento e restituisce la dimensione del file espressa in byte.
Quindi ecco i passaggi necessari per leggere un file con PHP.
Apri un file usando fopen() funzione.
Ottieni la lunghezza del file usando filesize() funzione.
Leggi il contenuto del file usando fread() funzione.
Chiudi il file con fclose() funzione.
L'esempio seguente assegna il contenuto di un file di testo a una variabile, quindi visualizza tali contenuti sulla pagina web.
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "tmp.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "<pre>$filetext</pre>" );
?>
</body>
</html>
Produrrà il seguente risultato:
Scrivere un file
È possibile scrivere un nuovo file o aggiungere del testo a un file esistente utilizzando PHP fwrite()funzione. Questa funzione richiede due argomenti che specificano afile pointere la stringa di dati che deve essere scritta. Facoltativamente, è possibile includere un terzo argomento intero per specificare la lunghezza dei dati da scrivere. Se viene incluso il terzo argomento, la scrittura si interromperà una volta raggiunta la lunghezza specificata.
L'esempio seguente crea un nuovo file di testo, quindi scrive una breve intestazione di testo al suo interno. Dopo aver chiuso questo file, la sua esistenza viene confermata utilizzandofile_exist() funzione che prende il nome del file come argomento
<?php
$filename = "/home/user/guest/newfile.txt";
$file = fopen( $filename, "w" );
if( $file == false ) {
echo ( "Error in opening new file" );
exit();
}
fwrite( $file, "This is a simple test\n" );
fclose( $file );
?>
<html>
<head>
<title>Writing a file using PHP</title>
</head>
<body>
<?php
$filename = "newfile.txt";
$file = fopen( $filename, "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$filesize = filesize( $filename );
$filetext = fread( $file, $filesize );
fclose( $file );
echo ( "File size : $filesize bytes" );
echo ( "$filetext" );
echo("file name: $filename");
?>
</body>
</html>
Produrrà il seguente risultato:
Abbiamo trattato tutte le funzioni relative all'input e all'uscita dei file nel capitolo relativo alle funzioni del file system PHP .