Haluaisin tietää, että miten saan muokattua tiedoston sisältöä. Eli olen ymmärtänyt, että tiedot pitäisi ladata johonki array:n ja muokata sieltä ja taas tallentaa, mutta kun minulle ei array systeemit oikein uppoa. Siis jos minulla on esim. seuraavanlainen tiedosto :
tetris_90.txt|TETRIS jee_123|Erkki goo_000|Spede
Niin miten saisin esim. muokattua/poistettua jonkun rivin (siis jonkin tietyn rivin). Yhden rivin tiedot pitäisi saada ladattua tekstiboxiin (muokkaamista varten)ja tallennettua sen jälkeen.
Tutki koodivinkkejä! Sieltä löytyy varmasti joku lähes valmis systeemi tohon.
Ideahan on, että jokaisella rivillä on oma id (itse käytän rivinumeroa) ja kun luet tiedoston taulukkoon esim.
$foo = file("tiedosto.txt"),
niin esim. ensimmäinen rivi löytyy $foo -taulukon ensimmäisestä alkiosta, joka siis on $foo[0].
Sitten tulostat tuon $foo[0] textareaan ja samalla laitat vaikka piilokenttään talteen rivin id:n. Muokkaat tekstiä ja tallennusvaiheessa luet taas tiedoston taulukkoon ja
$foo[$_POST['id']] = $_POST['muokattu_viesti'].
Sitten tyhjennät tiedoston ja kirjoitat taulukon sisällön tiedostoon.
get_file_contents() -funkkarilla saadaan sisältö myös.
Etkö voisi pistää esimerkkiä kun en älyä tuosta pahemmin mitään.... :( ....lähinä tuo tiedostoon tallennus muokkaamisen jälkeen.
<?php // Alla oleva vastaa file() funktiolla otettua taulukkoa jonkin tiedoston sisällöstä: $seppo[0] = "keijo|tosi makeeta!!|\r\n"; $seppo[1] = "heikki|jee vähä siistii|\r\n"; $seppo[2] = "seppo|jippii!|\r\n"; // Nyt poistamme tokan rivin: $seppo[1] = ""; // Jos haluat muokata riviä, haet sen vanhan rivin tiedot, ja muutat vain osaa niistä tiedoista, sitten taas liität ne tiedot yhteen. // Liitämme osaset yhteen: $liitos = implode("", $seppo); // Nyt sinun pitää enää keksiä miten saat tallennettua nuo tiedot vanhan tiedon päälle ;-) ?>
Pitääko tuon jälkeen siis enää tyhjentää vanha filu (siis se missä nuo sepon tiedot ovat) ja tallentaa sinne filuun $seppo?
Kyllä vain
lainaus:
// Nyt sinun pitää enää keksiä miten saat tallennettua nuo tiedot vanhan tiedon päälle ;-)
Vauhde! Kerrankin joku onnistuu :P Kiitoksia molemmille...
Aihe on jo aika vanha, joten et voi enää vastata siihen.