|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2000
Messaggi: 6087
|
[php] fopen/fwrite un problema!
Ho un problema che non riesco a risolvere!
Mediante una form inserisco dei valori in un file txt. $filename = 'pippo.txt'; $contenuto = "testo da inserire nella prima riga"; $handle=fopen($filename,"r+"); fwrite($handle, $contenuto); fclose($handle); Al secondo passaggio, vorrei inserire una seconda riga, che si dovrà posizionare in cima a tutte le altre già presenti! In sostanza, prima di inserire la seconda riga, devo poter in qualche modo mandare "a capo" quanto già dentro il file pippo.txt, altrimenti mediante $handle=fopen($filename,"r+"); e poi fwrite() sovrascrivo il contenuto di pippo.txt partendo dalla prima riga ![]() Spero di essere stato chiaro. L'output deve essere: step1: nel file pippo.txt Prima riga step2: nel file pippo.txt Seconda riga Prima riga e così via. Un append "al contrario"... Help! Tnx!
__________________
PSN: jNash08 "Iddu pensa sulu a iddu..." (cit.) ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
devi tornare con il puntatore all'inizio del file.. un rewind($handle) dovrebbe fare al caso tuo..
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: May 2000
Messaggi: 6087
|
Quote:
![]()
__________________
PSN: jNash08 "Iddu pensa sulu a iddu..." (cit.) ![]() ![]() |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2000
Messaggi: 6087
|
Non penso sia un problema di portare il puntatre ad inizio file, il puntatore è correttamente ad inizio file, ma poi per evitare che si sovrascriva il contenuto del file, devo poter abbassare di un tot di righe il contenuto già presente e poi aggiungere la riga nuova.
__________________
PSN: jNash08 "Iddu pensa sulu a iddu..." (cit.) ![]() ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
se lo apri in a+ e poi fai un rewind? prova un po..
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2000
Messaggi: 6087
|
Così facendo è come se il rewind non ci fosse! Fa un append, cioè mette in coda...
![]()
__________________
PSN: jNash08 "Iddu pensa sulu a iddu..." (cit.) ![]() ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
strano.. ok che apri in append ma se poi fai un rewind deve tornare all'inizio.. sicuro che non fai altre operazioni tra l'apertura e il rewind?
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: May 2000
Messaggi: 6087
|
Quote:
Ma quel comando non dice semplicemente dove si deve posizionare il cursore? Perchè questo avviene, però poi sovrascrive quello che trova da quella posizione in avanti ![]() $contenuto = "pippo"; $handle=fopen("file.txt","a+"); rewind($handle); fwrite($handle, $contenuto); fclose($handle); Appende in coda! Come traduco: "...vai a capo di tre righe e poi inizia a scrivere da lì..."? E' qui il punto! Tnx!
__________________
PSN: jNash08 "Iddu pensa sulu a iddu..." (cit.) ![]() ![]() Ultima modifica di Gregor : 24-05-2008 alle 17:48. |
|
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Ciao Gregor,
per ottenere quello che vuoi, fai così: 1) Crea un nuovo file temporaneo. 2) Inserisci la stringa del secondo passaggio all'inizio di questo file. 3) Leggi il file originale e copia il contenuto nel file temporaneo. 4) Chiudi il file temporaneo. 5) Cancella il file originale. 6) Rinomina il file temporaneo col nome del file originale. |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: May 2000
Messaggi: 6087
|
Grazie! Ho risolto proprio così!
![]()
__________________
PSN: jNash08 "Iddu pensa sulu a iddu..." (cit.) ![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:13.