- Home
- Categorie
- Coding e Sistemistica
- PHP
- gestione file txt
-
gestione file txt
ciao a tutti
sto imparando da poco il linguaggio php.....
mi trovo però ad aver necessità di creare qualcosa senza db.
Ho trovato nel sito il fantastico script di giorgio tave e l'ho provato....tutto ok.però mi chiedo....
e se volessi oltre a visualizzare il contenuto del file txt anche cancellare o modificare un eventuale riga a cui non sono più interessato?
potreste aiutarmi.
per comodità vi posto il codice che ho utilizzato...
grazie in anticipoper leggere il contenuto ho copiato
<?php
if (!$p_file = fopen("miofile.txt","r")) {
echo "Spiacente, non posso aprire il file miofile.txt";
} else {
while(!feof($p_file))
{
$linea = fgets($p_file, 255);
echo "$linea
";
}
fclose($p_file);
}
?>
-
con quello script mandi tutto nella variabile $linea che ogni volta assume il valore della riga.
Potresti parsarla ed aggiungere valori e poi rimetterlo nel file con fputs, oppure mettere tutto in un array con $linea[]=""; parsare quella variabile e rimettere dentro nel file.
E' più semplice a farlo che a dirlo
-
sono alle prime armi, quindi incontro difficoltà nel comprendere ciò che dici.
potresti parlare con linguaggio "dummies".
mi spiego meglio...vorrei sapere come si posssono gestire file txt qualora volessi cancellare o modificare una sola riga di dati e non tutto il file.
con il file che ti ho postato posso solamente visualizzare il contenuto, ma non cancellarlo o modificarlo.
-
if (!$p_file = fopen("miofile.txt","r")) { #qui dici: se non ho aperto correttametne in lettura (r) il file
echo "Spiacente, non posso aprire il file miofile.txt"; #allora stampa l'errore
} else { #altrimenti
while(!feof($p_file)) #fino a quando non raggiungo la fine del file
{
$linea = fgets($p_file, 255); #assegna a $linea il valore preso dal file aperto, fino al carattere 255 **echo "$linea
"; #e poi stampalo.
}
fclose($p_file); #chiudi il file.** qua potresti mettere una cosa del tipo:$linea[] = fgets($p_file, 255)
alla fine avresti un array, un insieme di variabili del file (nota che ottieni lo stesso con altri comandi, ma tralascio, per ora).
avresti quindi: $linea[0] che contiene la prima riga
$linea[1] che contiene la seconda.
$linea[n-1] che contiene lan-esima riga.che potresti poi successivamente modificare come vuoi con le varie str_replace, ereg_replace etc etc.
alla fine riscorri l'array e lo rimetti dentro il file.
esempio stupido:
if ($fp = fopen("miofile.txt","w")) { #se ho aperto correttamente in scrittura (w) il file
foreach ($linea as $n => $valore) { # fin quando non scorro tutto $linea
fwrite ($fp, $valore,255) ; #inserisci nel file il contenuto di ogni singola linea
}
fclose ($fp); #poi chiudi il file
} else {
echo "errore bla bla bla";, se nonriesci ad aprire il file, stampa quest'errore.
}Nota che lo stesso potresti farlo con altri metodi, ad esempio con file_put_contents(), ma per capire va benissimo.
PS http://it2.php.net/manual/it/function.fwrite.php
http://it2.php.net/manual/it/function.fopen.phped in generale http://it2.php.net/manual/it/ref.filesystem.php
possono esserti d'aiuto.