Moi,
Minulla pieni ongelma tämmösen koodin kanssa. TXT tiedostossa:
299568|VANTAA|2014-03-04 12:13:41|OSOITE|STATUS
402591|HELSINKI|2014-03-04 13:54:53|OSOITE|STATUS
PHP:ssä
<?php $filu = fopen ("testi.txt", "r"); $loytyy = false; while ($rivi = fgets ($filu)) { list ($id, $params, $timestamp, $source, $status) = explode ("|", trim ($rivi)); if ($id == $tunnus) { if (empty($source)) { ?> Sisältö alkaa jne
Eli PHP:ssä hakee oikean rivin ID:n perusteella, mutta miten saan kyseinen rivi muokattua ilman rivitietoa? Eli voiko riviä lähteä muokkaamaan tuon ID:n perusteella, ei rivinumeron perusteella?
Sun pitäisi pitää kirjaa noista riveistä jossakin. Tällöin muokkaus olisi ihan yksinkertaista. Jos tarkoitit jotakin muuta, niin tarkenna hiukan. Nythän aivan oikein purat rivin taulukoksi, mutta tuo generoitu taulukko pitäisi tallentaan vielä johonkin tietorakenteeseen. Voisivatko tiedoston rivien sarakkeet olla jonkin luokan ominaisuuksia? Tällöin voisit pitää taulukossa olioita ja niiden käsittely olisi ehkä mielekkäämpää?
Moi Teuro,
Kiitos vinkistä. Minun on lähinnä tarkoitus hakea oikeanlainen rivi ja päivittää sinne STATUS-tiedon päälle esim "OK". Tuo koodivinkisi palauttaa jostain syystä "Array", eli ei antanut mitään rivinumeroa..
Niin siis tuossa tulostuu tuo taulukko, jossa pitäisi olla avaimena tuo id-numero. Nyt kun id-numero on yksikäsitteinen, niin muokkaus onnistuu vaikkapa mäin.
<?php $rivit =Array(); /* $rivit[] = "299568|VANTAA|2014-03-04 12:13:41|OSOITE|STATUS"; $rivit[] = "402591|HELSINKI|2014-03-04 13:54:53|OSOITE|STATUS"; */ $tmp = Array(); $rivit = file($tiedosto); $tietueet = Array(); for ($i = 0; $i < count($rivit); ++$i) { $tmp = list ($id, $params, $timestamp, $source, $status) = explode ("|", trim($rivit[$i])); $tietueet[$id] = $tmp; } /* Muutetaan tietuetta */ $tietueet[402591][4] = "Uusi status"; var_dump($tietueet);
Aihe on jo aika vanha, joten et voi enää vastata siihen.