Articoli / Php
Leggere e Scrivere files con PHP
Author: Tafaz
Visits: 3537
Date: 25.09.2006
Se si specifica solo il nome del file questo verrà cercato nella directory di esecuzione dello script, o se usa include_path è impostato a true verrà cercato anche nelle directory specificate da questa direttiva.
Il nome del file può anche contenere la directory in cui risiede se questa è diversa da quella dello script in esecuzione, questa potrà essere specificata con un percorso relativo o assoluto, quindi filename potrà essere 'nomefile.est' o './dir/nomefile.est' o ancora '/www/dir/nomefile.est'.
Il secondo parametro invece invece definisce il modo in cui viene aperto lo stream al file, nel sito php.net c'è una tabella riassuntiva devi vari modi di apertura del socket che riporto qui sotto:
'x+'
Ora che abbiamo aperto uno stream verso il file non ci resta che leggerne il contenuto o scriverci, per far questo useremo le funzioni fread e fwrite.
Passiamo ad analizzare anche queste due funzioni:
fread accetta due parametri fread ( resource handle, int length ) che sono rispettivamente lo stream che abbiamo ottenuto tramite fopen, e la lunghezza in byte che vogliamo leggere (che dovrà essere un numero intero), mentre il valore che ci ritorna sarà ovviamente una stringa contenente ciò che ha letto dal file.
fwrite invece accetta due parametri più uno opzionale fwrite( resource handle, string string [, int length] )), il primo sarà sempre il nostro stream al file, il secondo il testo da scrivere nel file, mentre il terzo se specificato indicherà il numero di byte da scrivere, cosicchè se il secondo parametro è maggiore del terzo, verrà troncato. Il valore che questa funzione ci ritorna è il numero di byte scritti o FALSE se fallisce la scrittura.
Ultima ma non per importanza resta fclose che serve per chiudere lo stream verso il file. Questa funzione accetta un solo parametro bool fclose( resource handle ) che è l'identificativo dello stream da chiudere e ritorna TRUE o FALSE a seconda se l'operazione di chiusura dello stream è andata a buon fine o meno.
Author: Tafaz
Visits: 3537
Date: 25.09.2006
Se si specifica solo il nome del file questo verrà cercato nella directory di esecuzione dello script, o se usa include_path è impostato a true verrà cercato anche nelle directory specificate da questa direttiva.
Il nome del file può anche contenere la directory in cui risiede se questa è diversa da quella dello script in esecuzione, questa potrà essere specificata con un percorso relativo o assoluto, quindi filename potrà essere 'nomefile.est' o './dir/nomefile.est' o ancora '/www/dir/nomefile.est'.
Il secondo parametro invece invece definisce il modo in cui viene aperto lo stream al file, nel sito php.net c'è una tabella riassuntiva devi vari modi di apertura del socket che riporto qui sotto:
Modo Descrizione
'r' Apre in sola lettura; posiziona il puntatore all'inizio del file.
'r+'
Apre in lettura e scrittura; posiziona il puntatore all'inizio del file.
'w' Apre il file in sola scrittura; posiziona il puntatore all'inizio del file e tronca il file alla lunghezza zero. Se il file non esiste, tenta di crearlo.
'w+' Apre in lettura e scrittura; posiziona il puntatore all'inizio del file e tronca il file alla lunghezza zero. Se il file non esiste, tenta di crearlo.
'a'
Apre in sola scrittura; posiziona il puntatore alla fine del file. Se il file non esiste, tenta di crearlo.
'a+' Apre in lettura e scrittura; posiziona il puntatore alla fine del file. Se il file non esiste, tenta di crearlo.
'x'
Crea ed apre il file in sola scrittura; posiziona il puntatore all'inizio del file. Se il file esiste già la chiamata a fopen() fallirà restituendo FALSE e verrà generato un errore di lievllo E_WARNING. Se il file non esiste si tenterà di crearlo.
Questo equivale a specificare i flag O_EXCL|O_CREAT nella sottostante chiamata a open(2) . Questa opzione è supportata a partire dalla versione 4.3.2 di PHP, e funziona solo con i file locali.
Questo equivale a specificare i flag O_EXCL|O_CREAT nella sottostante chiamata a open(2) . Questa opzione è supportata a partire dalla versione 4.3.2 di PHP, e funziona solo con i file locali.
'x+'
Crea ed apre il file in lettura e scrittura; posiziona il puntatore all'inizio del file. Se il file esiste già la chiamata a fopen() fallirà restituendo FALSE e verrà generato un errore di lievllo E_WARNING. Se il file non esiste si tenterà di crearlo.
Questo equivale a specificare i flag O_EXCL|O_CREAT nella sottostante chiamata a open(2) . Questa opzione è supportata a partire dalla versione 4.3.2 di PHP, e funziona solo con i file locali.
Questo equivale a specificare i flag O_EXCL|O_CREAT nella sottostante chiamata a open(2) . Questa opzione è supportata a partire dalla versione 4.3.2 di PHP, e funziona solo con i file locali.
Ora che abbiamo aperto uno stream verso il file non ci resta che leggerne il contenuto o scriverci, per far questo useremo le funzioni fread e fwrite.
Passiamo ad analizzare anche queste due funzioni:
fread accetta due parametri fread ( resource handle, int length ) che sono rispettivamente lo stream che abbiamo ottenuto tramite fopen, e la lunghezza in byte che vogliamo leggere (che dovrà essere un numero intero), mentre il valore che ci ritorna sarà ovviamente una stringa contenente ciò che ha letto dal file.
fwrite invece accetta due parametri più uno opzionale fwrite( resource handle, string string [, int length] )), il primo sarà sempre il nostro stream al file, il secondo il testo da scrivere nel file, mentre il terzo se specificato indicherà il numero di byte da scrivere, cosicchè se il secondo parametro è maggiore del terzo, verrà troncato. Il valore che questa funzione ci ritorna è il numero di byte scritti o FALSE se fallisce la scrittura.
Ultima ma non per importanza resta fclose che serve per chiudere lo stream verso il file. Questa funzione accetta un solo parametro bool fclose( resource handle ) che è l'identificativo dello stream da chiudere e ritorna TRUE o FALSE a seconda se l'operazione di chiusura dello stream è andata a buon fine o meno.
Se vuoi discutere con noi su questo articolo o comunque vuoi porci delle domande usa il nostro Forum

