Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Viestin poisto

Jyi [19.07.2004 10:18:53]

#

Olis tarkoitus tehä mun sivujen vieraskirjaan viestinpoisto mahdollisuus (siis tietysti vain webmasterille), mutta mulla itellä ei ole hajuakaan, että miten sen voi tehdä. Eli voiskos joku kertoo millä periaatteella semmonen viestinpoisto toimii? Nii ja se vieraskirja toimii txt tiedostolla.

amigo [19.07.2004 11:08:46]

#

Luet vaikka tekstitiedoston taulukkoon file()-funktiolla ja poistat kyseisen viestin array_splice()-funktiolla. Sen jälkeen tallennat uuden taulukon tiedostoon.

Esim.

<?php
   $taulukko = @file("tekstitiedosto.txt");
   array_splice($taulukko, $numero, 1);
?>

$numero on sen viestin indeksi minkä haluut poistaa. Sen voit lähettää skriptille vaikka formilta. $taulukon indeksit alkaa 0:sta.

jarih [19.07.2004 14:52:35]

#

Onko liioittelua käyttää flock() -funktiota estämään tiedostoon kirjoituksen tuon operaation ajaksi.

Matti Kaijomaa [20.07.2004 01:31:46]

#

Mä poistan tiedostosta rivin näin:

<?php
$id = 12; //poistettava rivinumero

$file = file("tietokanta.txt"); //tiedoston rivit taulukkoon
$rivit = count($file) -1; //lasketaan tiedoston rivien määrä

$kirjoitus = fopen("tietokanta.txt", "w"); //tyhjennetään tiedosto ja avataan se kirjotusta varten
flock ($kirjoitus, 2); //lukko kiinni

for ($i = 0; $i <= $rivit; $i++) { //kaydaan jokanen rivi lapi
    if ($i != $id) { //jos rivi ei ole poistettava rivi
        fwrite ($kirjoitus, $file[$i]); //kirjotetaan se filuun
    }
}

flock ($kirjoitus, 3); //lukko veks
fclose ($kirjoitus); //filu kiinni
?>

PHP:ssä ei vaikeelta kuulostavat asiat oo välttämättä niin vaikeita. Pitää vaan keksii et kuinka toteuttaa.

PS. ei sit winetä turhist kommenteist

EDIT: hienosäätöä

T.M. [20.07.2004 01:40:39]

#

Turhan hankalasti toteutettu :)

Itse käytän tätä tapaa:

<?php

$id = 12;
$tiedosto = "tiedosto.txt";

$filu = file($tiedosto);
$filu[$id] = "";

$save = fopen($tiedosto, "w");
fwrite($save, implode("", $filu));
fclose($save);

?>

Niin, ja tuota voi käyttää myös rivin muokkaamiseen.

Matti Kaijomaa [20.07.2004 01:44:19]

#

Mitäs kukas se täällä alkaa mun patenttiratkasuja uhmaamaan?

EDIT: Tai no joo pakko tässä on taipua :/

tsuriga [20.07.2004 01:49:27]

#

Koodissasi ei tarkisteta onnistuiko lukitus. Iteki tein ennen tolleen, et "jos ei poistettava rivi", mutta siirryin sittemmin implodeen. array_splice näyttäisi hyvältä vaihtoehdolta.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta