PHP/Programmazione/File: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
file
 
Ramac (discussione | contributi)
leggere e scrivere sui file
Riga 43:
Per chiudere un file già aperto usiamo semplicemente la funzione
fclose(puntatore);
 
== Leggere e scrivere un file ==
Per leggere un file si usa la funzione <code>fread</code> la cui sintassi è:
fread(handle, lunghezza)
e legge <code>lunghezza</code> byte dal file aperto identificato dal puntatore <code>handle</code>; dopodiché, sposta il puntatore del file di <code>lunghezza</code> byte in avanti.
<br/>Ad esempio:
$fp = fopen("file.txt", "r");
$contenuto = fread($fp, 10);
$cont2= fread($fp, 40);
Con questo breve spezzone, <code>$contenuto</code> conterrà i primi dieci byte del file e <code>$cont2</code> i byte dall'undicesimo al cinquantesimo.,
 
Per scrivere su un file aperto in modalità di scrittura è possibile usare la funzione <code>fwrite</code> la cui sintassi è:
fwrite(handle, stringa, n);
e scrive sul file aperto e identificato da <code>handle</code> i primi <code>n</code> byte di <code>stringa</code>. Se <code>stringa</code> è minore di <code>n</code> byte, viene scritto il suo contenuto per intero. La funzione restituisce -1 in caso di errore.
 
=== Creare un contatore visite ===
Viste queste due semplici funzioni, possiamo ora creare un semplice contatore di visite nel nostro sito. Per evitare che il conteggio aumenti ad ogni ''reload'' della pagina, useremo delle variabili di sessione per verificare così se l'utente stava già visitando il sito prima di caricare la pagina.
session_start()
if ($_SESSION['entrato'] == false) {
//incrementa le visite se è la prima volta che l'utente accede al sito in questa sessione
$_SESSION['entrato'] == true;
$fp = fopen("contatore.txt", "r+");
if (!fp) {
//se il file non è stato aperto correttamente
echo "Errore nell'apertura del file";
exit; //esce dallo script PHP
}
$visite = (int) fread(£fp, 10);
$visite++;
echo "Questo sito ha avuto $visite visite!";
fwrite($fp, $visite);
floce($fp);
}