Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tekstitiedoston lataus textareaan ja takaisin korvaten vanhan...

Cecce [03.06.2004 15:03:05]

#

Seuraava on ongelma ja voi olla hankala selittää. Olen kyhäilemässä jotain pientä "uutisten" lisäys ja editointi juttua tai en välttämättä edes rakentelemassa, mutta kunhan kokeilen. Eikä sitä välttämättä voi kutsua uutissysteemiksi ollenkaan :) Siinä voidaan syöttää "uutinen" www-lomakkeeseen, josta sitten tiedot lähetetään tekstitiedostoon muodossa:

id|pvm|nimi|sähköpostiosoite|uutinen

Sitten mietiskelin, että miten voisi tulostaa nuo "uutiset" www-sivulle. Sekin onnistui ja vielä sekin, että pystyn ottamaan jokaisen aiheen erikseen editoitavaksi textareaan.
Eli jokaisen lisätyn "uutisen" jälkeen tulee "Edit"-linkki, joka hakee sen kyseisen kohdan textarean sisään. Jotain tuollaista:

$data = file('news.txt');
$data = array_reverse($data);
foreach($data as $element) {
$element = trim($element);
.
.
<a href=\"edit.php?data=$element\">Edit</a>

Sitten kun ollaan tuossa textareassa, niin siihen pitäisi tehdä muutoksia ja saada tuo yksi tekstitiedoston osa korvattua tällä uudella, editoidulla tekstillä. Eli siis koko tekstitiedostoa ei korvata, vain tuo $element -osa. Ja sama siis jokaisen "uutisaiheen" kohdalla.

Onko ajatuksia, kuinka tuo tehdään. Koitin jotain str_replacella mutta ei luonnistunut.

Tempfile [04.06.2004 11:24:40]

#

Jos uutisilla on jokaisella oma id, niin voisit kokeilla etsiä korvattavan rivin sen perusteella. Voisi vaikka tehdä funktion, joka vertailee id:tä ja palauttaa rivinumeron, vaikka vähän näin:

<?php
function findid($id){
  $news = file("news.txt")

  for($i=0; $i<count($news); $i++){
    $data = explode("|", $news[$i]);

    if($id == $data[0]) return $i;
  }
  return false;
}
?>

Sitten vain korvaat tuon rivin uudella, ja kirjoitat koko homman tiedostoon.

Cecce [06.06.2004 22:03:13]

#

Kiitos paljon vinkistä! Jotain tuollaista ajattelinkin, mutta se ei vääntynyt kooditasolle. :) Täytyy testata tuon funktion toimintaa.

suski78 [08.06.2004 14:26:55]

#

Väänsin itse tuollaisen joskus, ja muistaakseni täällä keskustelupalstallakin on näkynyt ehdotuksia, että kannattaa tehdä tekstitiedostoon ikäänkuin rivinumerot ja käsitelllä aina rivinumeroiden välistä string osaa. Itse lisäsin aina rivinumeron perään välin ja erottelin muut kentät #-merkillä, sillä jos uutisen otsikon aloitti numerolla, tuo logiikka ei pelannut.
Eli esim.
1 # otsikko eka # tekstiä
2 # otsikko toka # kälä kälä

Vastaus

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

Tietoa sivustosta