Leggere e scrivere dai files
File_put_contents
Mediante la funzione file_put_contents è possibile aprire un file sul webserver e memorizzare in esso delle variabili. La funzione accetta i seguenti parametri:file_put_contents($nome_file,$testo,$flags);
I flags sono opzionali. Prendiamo ad esempio il caso per il quale vogliamo scrivere su un file una sequenza di numeri:<?php
for ($i = 0; $i < 10; $i++){
$testo .= $i;
}
/*
Scrive nel file di nome file.txt la seguente serie di numeri:
0123456789
*/
file_put_contents('file.txt',$testo);
?>
L'esempio di prima scrive in un file chiamto file.txt la serie di numeri da 0 a 9. Se questo script viene eseguito nuovamente il file viene sovrascritto e, pertanto, conterrà sempre la stessa serie di numeri. Come fare per evitare di cancellare il file prima di sovrascriverlo? È possibile usare un "flag" ovvero una impostazione per la funzione file_put_contents che serve a impostare la modalità append. Questo flag è rappresentato dalla costante FILE_APPEND. Ad esempio:
<?php
$data = 'Il mattino ';
/*
* Crea il file file.txt e se esiste lo sovrascrive
*/
file_put_contents('file.txt',$data);
$data = 'ha l\'oro in bocca.';
/*
* Apre il file file.txt e accoda la nuova stringa
*/
file_put_contents('file.txt',$data,FILE_APPEND);
?>
Crea nel file file.txt la stringa "Il mattino ha l'oro in bocca". Da notare come FILE_APPEND non è preceduto dal simbolo del dollaro perché, in effetti, non è una stringa.
Da notare che anche se si utilizza il flag FILE_APPEND e si tenta la scrittura su un file che non esiste PHP non solleva un errore ma crea il file e scrive su di esso.
File_get_contents
Mediante file_get_contets è possibile aprire un file e memorizzare il contenuto di questo in una variabile. Il funzionamento è molto semplice: supponiamo di voler leggere da un file che si chiama file.txt.<?php
$data = 'Nel mezzo del cammin di nostra vita...';
/*
* Scrive nel file divina.txt,
*/
file_put_contents('divina.txt',$data,FILE_APPEND);
// Apre il file divina.txt e memorizza il contenuto nella variabile $lettura_file
$lettura_file = file_get_contents('divina.txt');
echo $lettura_file; // Restituisce "Nel mezzo del cammin di nostra vita..."
?>
Da notare che se si tenta di aprire un file inesistente, ad esempio bibliografia.txt, come in questo esempio:
<?php
// Tenta di aprire il file inesistente bibliografia.txt
$lettura_file = file_get_contents('bibliografia.txt');
echo $lettura_file;
?>
si ottiene un errore simile a "Warning: file_get_contents(bibliografia.txt) [function.file-get-contents]: failed to open stream: No such file or directory in C:\xampp\htdocs\file_get_contents.php on line 3".
Questo perché l'interprete PHP ha cercato il file bibliografia.txt e non avendolo trovato restituisce un errore.
Successivo: La gestione degli errori
Precedente: Introduzione alle classi ed agli oggetti in PHP