-
Ciao ragazzi, vorrei sapere come creare un file di testo e farlo leggere dalla pagina php, come fosse un database.....
Mi proteste scrivere il codice uttilizzando la fopen, fclose, fwrite fread...?
Se esistono sto appena imparando ad fare i siti gratuiti mā mi manca la programmazione ......
Mi potete dare un consiglio ????
Ciao A Tutti
-
Beh la sintassi specifica non me la ricordo, non programmo in PHP da mesi.
Cmq su php.net puoi vedere come si usano tutte le funzioni e molte parti della guida esistono anche in italiano.
Dal momento che quella dei file di testo č una soluzione che adotto anch'io vorrei darti un paio di dritte:
- se devi leggere tutte le righe usa:
$righe_del_file = file("nomefile");
- una volta fatto questo ti consiglio un ciclo for che elimini il carattere 'a capo' da ogni riga:
for($i = 0; $i < sizeof($righe_del_fil); $i++)
$righe_del_file[$i] = trim($righe_del_file[$i];
(come puoi vedere sizeof(vettore) restituisce la sua lunghezza)
- infine, se usi il file come coppie 'chiave valore', per intenderci:
qualcosa1 10
qualcosa2 20
qualcosa3 35
Allora la funzione explode() usata con parametri opportuni ti permeterā di dividere i valori in variabili diverse.
Buon divertimento
-
$fd = fopen($nomefile, "r") or die("Non posso aprire il file $nomefile");
$fstring = fread($fd, filesize($nomefile));
fclose($fd);
$Testo_Da_File = explode("\n", $fstring);
ricorda che $nomefile č comprensivo di percorso assoluto (nel caso di altervista "/membri/[TUO_NOME]/[percorso nel sito]/nome del file")
Ciō che ottieni in questo modo č un array $Testo_Da_File che ha in ciascun elemento una riga del file di testo. Se vuoi che ogni riga del file sia una sorta di "record" puoi usare dei separatori convenzionali per condensare tutti i campi in una medesima riga, separati appunto dal separatore da te scelto. Esempio, se scegli "****" avrai:
$Testo_Da_File[0] -> riga 0 del file -> record 0 del database -> campo0****campo1****campo2****campo3
Supponiamo che:
campo0 sia "Nome"
campo1 sia "Cognome"
campo2 sia "Indirizzo"
campo3 sia "email"
esempio:
$Testo_Da_File[0]="Mario****Rossi****Via Bianchi, 1****mario_rossi@bianchi.it"
puoi usare nuovamente la funzione explode creando un array multidimensionale, in cui il primo indice č il numero di riga, ovvero l'indice di record, mentre gli indici successivi sono i nomi di campo:
foreach $Testo_Da_File as $num_riga => $testo_riga {
$campi = explode($testo_riga, "****");
$Campo_da_riga[$num_riga]["Nome"] = $campi[0];
$Campo_da_riga[$num_riga]["Cognome"] = $campi[1];
$Campo_da_riga[$num_riga]["Indirizzo"] = $campi[2];
$Campo_da_riga[$num_riga]["email"] = $campi[3];
}
a questo punto per recuperare i dati, se sai l'indice di record e il nome del campo č un attimo:
print $Campo_da_riga[0]["Nome"] . " ". $Campo_da_riga[0]["Cognome"] . "(" .$Campo_da_riga[0]["email"] . ")";
ed otterrai: Mario Rossi (mario_rossi@bianchi.it)