|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
|
[PHP] Scrittura file
Ragazzi mi serve un aiuto. Devo modificare una riga data in un file di testo...Come faccio a cancellare quella riga e riscriverla invece di cancellare e riscrivere l'intero file? Help me!!
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Pisa
Messaggi: 2498
|
Codice PHP:
__________________
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
|
No, non ho capito...
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2006
Città: Pisa
Messaggi: 2498
|
Quote:
Scherzo... Allora, con la funzione file() ti apre il file e te lo salva in un array, dove ogni array è una riga del file. Poi leva gli spazi all'esterno, da ogni riga, con "trim". Fatto ciò, con array_diff, leva dal primo array il campo che corrisponde alla riga che vuoi togliere dal file. Dopo questo ancora, dall'array rimasto, crea una stringa che è l'incollaggio delle righe rimaste con un acapo. Poi scrive questa stringona sul file di partenza, aperto in "w" per cancellare il contenuto. Spero di essere stato un po più chiaro Ciauz, Alex
__________________
|
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
|
Perfetto, in pratica cambio la riga e riscrivo l'intero file....questo lo so fare, ma se il file cresce sostanzialmente??? Io volevo semplicemente spostare il puntatore alla riga giusta e riscriverla
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Pisa
Messaggi: 2498
|
Sono un demente...
Mi sembrava dovessi solo cancellarla quella riga ![]() Puoi usare il metodo di prima, però allungato.. Invece che fare array_diff, cicli tutto l'array con foreach, e quando trovi la riga che ti serve la sostituisci. Poi scrivi il file come sopra. Spero di aver capito io stavolta..
__________________
|
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Feb 2005
Città: Catania
Messaggi: 188
|
Non credo siamo ancora arrivati al punto....In questo modo io devo cmq riscrivere tutte le righe del file per modificarne una soltanto e questo non va bene. Io vorrei semplicemente scrivere quella interessata
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jan 2006
Città: Pisa
Messaggi: 2498
|
Per fare ciò che chiedi tu dovresti in pratica... leggere ogni riga con fgets, controllare se è quella che ti serve, e se è quella, tornare su di una riga col puntatore, cancellarla e riscriverla giust? Il problema è che non so come far tornare su di una riga il puntatore... A meno di non contare tutti i byte letti e poi tornare al punto con fseek...
__________________
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:33.



















