Sei qui: Home » Guide » PHP » Guida completa a PHP » Leggere e scrivere dai files

Leggere e scrivere dai files

Le versioni di PHP 5.0 e maggiori mettono a disposizione due comode funzioni per scrivere e leggere i files che sono, rispettivamente, file_put_contents e file_get_contents.

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.
Ricerca
News
giu 3, 2010
È stato appena rilasciato, dalla società JetBrains, un nuovo IDE per la creazione rapida di progetti Web/PHP/MySQL.

tag: phpstorm, IDE, php

apr 3, 2010
Rilasciato JQuery UI in versione stabile. La release 1.8, oltre a numerosi bugfix, possiede due interessanti Widgets.

tag: jquery

mar 12, 2010
È stato da poco rilasciato il famoso forum SMF in versione 2.0RC3; tanti bugfix e un'aspetto più consolidato.

tag: smf, vbulletin, forum

mar 11, 2010
Un articolo "passo-passo" che spiega come configurare Google Apps con un qualsiasi tipo di pacchetto TopHost. Un'accoppiata vincente!

tag: TopHost, Google Apps

mar 9, 2010
Inserita la guida completa a PHP

tag: howtoprog

mar 8, 2010
Il sito è in fase di restyling; ci scusiamo per gli eventuali disagi ma, come vedrete a breve, vale la pena pazientare qualche giorno!