<?php $uutinen = $_POST["uutinen"]; $lisaaja = "-" . $_POST["kirjoittaja"]; $aika = date(" j.n.y - h:i:s"); $laitto = " <table border=\"0\" width=\"350px\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td class=\"uutinenaika\"> $aika </td> <td class=\"uutinenlisaaja\"> $lisaaja </td> </tr> </table> <table border=\"0\" width=\"350px\" cellspacing=\"0\" cellpadding=\"0\"> <tr> <td class=\"uutinen\"> $uutinen </td> </tr> </table>"; $file = fopen("./tiedostot/uutiset.txt", "r+"); fwrite($file, $laitto); fclose($file); echo "Uutinen lisätty onnistuneesti!"; ?>
Elikkä kuinka tehdä tämä oikein? :) Tällä tavalla tyhjentää aina tekstitiedoston vaikkei pitäisi :/
r+ -> a+ esim?
$file = fopen("./tiedostot/uutiset.txt", "r+");
tuon kun muutat
$file = fopen("./tiedostot/uutiset.txt", "a");
Muuten hyvä, mutta uusi teksti pitäisi saada ylimmäiseksi. " 'r+' Open for reading and writing; place the file pointer at the beginning of the file. " Mutta tyhjentää myös tiedoston :/
EDIT:
Ei näköjään tyhjennä, mutta sotkee HTML:än täysin.
Miksi et lue vanhaa dataa muuttujaan file_get_contents -funktiolla ja kirjoita aluksi uutta dataa ja lopuksi vanhaa perään? Tiedän, kun tiedostossa on ziljoona riviä, homma on hidasta mutta tuleeko sinne niin montaa riviä?
r=read!=write.
a=append. Eli lisää sinne perään. Ja sitten käytät array_reverseä (löytyy www.php.net) siellä missä printtaat uutisia ulos tiedostosta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.