Salve
sono qua da poco e gia il secondo problema... scusate ma sono un po alle prime armi eheh
Sempre riguardo al PHP visto che mi sto concentrando su di quello, sto realizzando un'area download, con la possibilita di inserire nuovi file, con tanto di commento.
Per ogni nuovo file quindi, va salvata una combinazione nomefile|commento
inserendo commenti in una tabella del database mysql sarebbe relativamente facile facendo una tabella con campi nomefile|commento, ma io volevo evitare l'uso del database, perchè ho un database a query limitate, e vorrei anche che fosse utilizzabile il tutto senza possedere un database.
Per organizzare i commenti intendevo usare quindi un file di testo, risolvendo il problema...
Facendo un file del tipo:
poi utilizzando la funzione explode() riprendermi il contenuto e visualizzarlo
ne sorge un altro però, il numero di commenti che si possono inserire puo essere anche molto elevato, arrivando quindi a centinaia di commenti uno dopo l'altro, mettiamo che mi serva il 150esimo commento, dovrei far leggere tutto il file da capo, fino alla riga giusta... ma se il file ha una certa dimensione, pensavo che potrebbe risultare lento il processo e quindi rallentare notevolmente la pagina...
la mia seconda alternativa era creare un file di testo per ogni coppia file|commento, e al suo interno scriverci il commento. La lettura risulterebbe piu veloce credo, però avrei centinaia di file di testo...
una risparmia in numero di file, ma ne aumenta la dimensione,
l'altro risparmia in dimensione, ma aumenta il numero di file...
io personalmente uso il secondo, tanto che mi importa di avere migliaia di file, quando li metto dentro una bella serie di cartelle?
E comunque ti do un consiglio: metti sempre un identificativo alle varie cose, ad esempio, invece di fare nome|commento, fai id|nome|commento così da avere qualcosa di univoco per fare confronti.
L'id lo puoi mettere con la funzione time().
Ciao!
EDIT: Sei tu l'autore di tes.altervista??? Grande!
Ultima modifica di Leo91 : 11-07-2007 alle ore 14.51.01
Non proprio l'autore di tes, il sito è stato fondato da Rowenn, il punto e che purtroppo per impegni non ha piu tempo di svilupparlo e mi ha passato l'incarico, e ora me ne occupo io :D
In ogni caso avevo una certa idea sul fatto che la seconda fosse la migliore, del resto, se hosto cosi tanti file, potro permettermi altrettanti file di testo...
bene!
ma non ho ben capito a quale scopo dovrei utilizzare l'ID
beh,io personalmente fin'ora (è tutto ancora molto provvisorio e accetta modifiche)
faccio in modo che la distinzione univoca sia fatta per il nome del file, e che non venga consentito l'upload di nuovi file con nome analogo a uno già presente...
in questo modo, Dovrei evitare doppioni, e far si che il nome file, oltre che da fare come nome file, faccia anche da ID... sto valutando il vantaggio di avere anche un id...
il mio problema è anche che...
al momento di fare una lista di tutti i file, uso glob() per vedere i file disponibili, e li visualizzo in base al loro nome,non in base al loro id,perchè sarebbe impossibile
Ultima modifica di Dharlet : 11-07-2007 alle ore 17.48.46
Usa un file solo.
Primo perchè è più comodo da esportare.
Secondo perchè puoi facilmente decidere quante righe del file leggere senza scorrere tutti i commenti per visualizzare ad esempio solo 10 commenti a volta.
Terzo perchè un file lo puoi facilmente convertire in altri formati o importarlo in un database nel caso si volesse passare a DB.
Quarto quando i file diventano troppi l'accesso alla directory in listing si rallenta rendendo problematico un accesso attraverso filemanager.
Per fare una cosa bella potresti usare gli XML, concettualmente è la stessa cosa, ma in rete esiste del codice che ti permetterebbe di farlo velocemente.
"L'intelligenza è una pianta che va curata continuamente.
Dovreste vedere com'è bello, il mio bonsai."
Rat-man®
[Gradient Text]
[Su che server sei?]
->flickr
Non so se l'ho detto ma...
nel mettere tutti i commenti in un solo file, i commenti non li leggerei tutti, bensi ogni singolo commento sta su un file diverso e quindi su una pagina diversa, quindi dovrei leggere solo un record per volta...
ma è vero che per leggere il 500 commento in fondo, devo leggere tutto il file, e il tempo di elaborazione della pagina si allunga? in che ordine di grandezza? pochi millisecondo o puo essere anche molto elevato?
Secondo me se il file di testo ti arriva a 500 righe (una per ogni file/programma inserito) riesci benissimo a mantenere il database di classe 6 con uno solo dei banner grandi...
Ciao
il punto è che il commento non occupa una sola riga nel file di testo... puo essere 5- 10 -20 righe o piu, il che mi renderebbe un unico file per imaggazzinarli, letteralmente enorme!
e ho pensato che potrebbe andare a scapito delle prestazioni...
mentre un file solo per ogni file/programma inserito, sarebbe facile da leggere, e siccome inserito in una cartella non darebbe neanche troppo fastidio...
Comunque non c'è bisogno di scorrere tutto il file, potresti impaginarlo in modo da visualizzare 10 risultati per pagina
Insomma, non sono stato chiaro affatto:
db.txt - Contiene tutti i file caricati
id|nomefile|\n
dentro una cartella (commenti) ogni volta che una persona inserisce un commento appendi al file chiamato "id" questa stringa
idcommento|autore|testo|\n
togliendo da autore e testo gli eventuali \n
l'idcommento potrebbe servirti quando andrai a modificare/cancellare un commento e lo ricavi tramite time() o come ti pare
Così andrai a cercare la lista dei file qui -> db.txt
E quando cliccherai sul link di un file passerai il suo id ($_GET['id']) che ti servirà per sapere il nome del file con i commenti del file scelto.
Ultima modifica di Leo91 : 12-07-2007 alle ore 11.53.45