Hei.
Oiskos teist apua täs mun ongelmas.
Eli tämmöne juttu olis ku nuo kommentit tallentuu väärin päin, eli haluaisin että ne tallentuisivat laskevasti, eli että uusin ensimmäisenä ja sitä rataa.
Olen yrittäny array_reverseä, mut heikoin tuloksin. Aina tuo koodi rikkoutuu tai ei toimi. Esim usein se tulostaa esille numeroit ja "array". Voiskos joku opastaa mites täs tulis toimii.
Tuo "echo $tulosta;" tulostaa tekstit esille.
//tiedot.txt:hen aletaan syöttämään uusia kommenttitietoja. //tallennetaan päivämäärä, sijainti eli itäinen tai läntinen osa, //tornin numero (tornit on numeroitu itä ja länsi erikseen, jolloin //niiden tunnistaminen on helpompaa $filu=fopen("../kartta3/tiedot2.txt","a"); fputs($filu, date("d.m.y")); fputs($filu, '<br />'); fputs($filu, $sijainti); fputs($filu, $torni); fputs($filu, '<br />'); fputs($filu, '<br />'); //$kommentti on kommenttikentän tekstit, johon rivin vaihto pitäisi saada //p on solujen muuttuja //nl2br:llä saadaan rivinvaihdot //echo '>>' . $kommentti . '<<'; $kommentti = nl2br($kommentti); fwrite($filu,$kommentti); fputs($filu, '<br />'); fputs($filu, '<hr>'); fclose($filu); } } //Tulostetaan kommentin tiedot tiedostosta tekstikenttään, selaimeen näkyville. $tulostus=fopen("../kartta3/tiedot2.txt","r"); $tulosta = fread( $tulostus, filesize("../kartta3/tiedot2.txt")); echo $tulosta;
Koska $tulosta -muuttuja on taulukko, niin sitä ei voikaan tulostaa vain yhdellä "echolla", eli yhdistä vaikkapa taulukko implodella merkkijonoksi, tai tulosta rivit for -loopilla.
Onhan php:ssä toki esim print_r joka tulostaa muuttujan sisällön "ihmisluettavassa" muodossa.
Eri asia sitten, onko print_r($tulosta) sellaisessa muodossa kuin haluttaisiin.
Grez kirjoitti:
Eri asia sitten, onko print_r($tulosta) sellaisessa muodossa kuin haluttaisiin.
Veikkaisin, ettei tätä juuri haeta, kun tekstin mukaan tulostetaan "karttaa".
Lebe80 kirjoitti:
Koska $tulosta -muuttuja on taulukko
fread palauttaa kylläkin merkkijonon, toisin kuin file joka palauttaa rivit taulukossa.
Joudut ensin yhdistämään peräkkäiset rivit, jotka kuuluvat samaan kommenttiin. Sitten voit tulostaa ne käänteisessä järjestyksessä.
Et voi suoraan kääntää tiedoston rivien järjestystä, koska silloin jokainen kommentti tulostuisi "ylösalaisin".
Tuollaisen huteran tekstiformaatin käyttö on vähän hankalaa.
Lebe80 kirjoitti:
Koska $tulosta -muuttuja on taulukko
Jooh. Eli tässähän tulikin jo tietoa jonkin verran. Eli toivon mukaan ymmärsitte oikein, että haluan taulukon solut käänteisessä järjestyksessä. Tällähän hetkellä yksi solu sisältää yhden kommentin, toisaalta onko helpompaa tapaa kuin lähteä kikkailemaan tuommoisilla pitkillä koodeilla. Olisiko apuja siitä, mitä kannattaisi isä -googlelta kysyä.
jlaire kirjoitti:
Joudut ensin yhdistämään peräkkäiset rivit, jotka kuuluvat samaan kommenttiin.
Jotenkin oletin että tiedostoon kirjoitettaisiin rivinvaihtoja, mutta nyt tajusin että eihän koodissa näy sellaisia.
Tekstitiedostossa on siis vain yksi pitkä rivi jossa kaikki kommentit ovat peräkkäin? Helpointa olisi tallentaa tasan yksi kommentti joka riville, eli lisätä fputs($filu, "\n");
juuri ennen fclosea. Sitten tulostus onnistuisi näin:
echo implode("\n", array_reverse(file("../kartta3/tiedot2.txt")));
Aihe on jo aika vanha, joten et voi enää vastata siihen.