- Home
- Categorie
- Coding e Sistemistica
- Coding
- fopen - l'attributo 'r+' si comporta uguale a 'w+'
-
fopen - l'attributo 'r+' si comporta uguale a 'w+'
Devo aggiungere delle righe ad un file... di solito ho sempre usato l'attributo 'a+' che scrive in fondo al file di testo....
Ma sta volta per il lavoro che devo fare, mi serve l'opposto,
cioè scrivere ad inizio file senza sovrascrivere il contenuto.Pensavo di usare l'attributo r+ ma esso mi cancella la prima riga. Facendo una ricerca su google ho visto che anche altre persone hanno avuto il mio stesso problemaforum.it.altervista.org/php-mysql-e-file-database/89629-php-problema-fopen-r.html
in questa discussione un moderatore dreadnaut esprime esattamente l'uso dell'attributo r+che si può fare?
-
Ciao, se il file non è troppo grande (da occuparti tutta la memoria a tua disposizione) potresti caricare il file in una variabile a cui precedentemente avevi inserito le righe da mettere in cima, e risalvare il file.
M.
-
il fatto è che devo inserire più volte un nuovo argomento
e le righe devo scendere...caricare un file in una variabile?
mi fai un esempio?grazie
-
Memorizzi tutto il contenuto in una variabile:
$var=fopen("tuofile.txt","r"); $dim=filesize("tuofile.txt"); $contenuto=fread($var,$dim); fclose($var);A questo punto, nella variabile $contenuto hai tutto il testo del file quindi ti basta salvare l'aggiornamento e poi il contenuto nel file sovrascrivendolo.
$nuovo='nuova stringa da aggiungere'; $var=fopen("tuofile.txt","w+"); fwrite($var,$nuovo.$contenuto); fclose($var);Ovvio che, se il file è grande, ti conviene lavorare con tabella su database.
-
grazie mille...
un ultima cosa l'andare a capo
è meglio con ```
<br /> oppure \n<form action="riceve2.php" method="POST">
Titolo: <input size=85 type="text" name="titolo"><br>
<textarea name='messaggio' cols='70' rows='15'> </textarea><br><input name="submit" type="submit" value="invia"><input type="reset" value="cancella">
</form><?
$_POST['titolo'];
$_POST['messaggio'];
?><?
$var=fopen("deposito.php","r");
$dim=filesize("deposito.php");
$contenuto=fread($var,$dim);
fclose($var);$nuovo='nuova stringa da aggiungere';
$var=fopen("deposito.php","w+");
fwrite($var,$nuovo.$titolo.$messaggio.$contenuto);
fclose($var);
?><a href="deposito.php">vai a deposito.php </a>
grazie 1000 maxgiulia.altervista.org/max/08-agosto/textarea/prova/form2.html
-
Non so dove lo devi mettere... e poi dipende... prova sia con uno che con l'altro...
Comunque lo metti così:
fwrite($var,$nuovo.$titolo.$messaggio.'<br />'.$contenuto);
-
il <br> serve per andare a capo in HTML, lo \n per andare a capo nei file e dare un senso a quello che si legge editandoli.
M.
-
grazie di tutto ragazzi dovrei solo inserire la data e l'ora e poi inserisco il tutto in una tabella...
\n non mio funziona l'altro si... o forse ho sbagliato qualkosa
comunque ecco il risultato
maxgiulia.altervista.org/max/08-agosto/textarea/prova/deposito.phpe questo il form
maxgiulia.altervista.org/max/08-agosto/textarea/prova/form2.htmlgrazie 1000

PS mi ricollego stasera dopo mezzanotte come il lupo ... auuuuuu
-
maxgiulia.altervista.org/max/08-agosto/textarea/prova/deposito.php
Prima di mandare in output i dati, passali con lo stripslashes().
-
ho iniziato da poco a studiare php
ed ho bisogno sempre di esempigrazie - ciao