Mitenkä saisin tulostettua vieraskirjasta vain 3 ensimmäistä viestiä näkyviin. "Itse en tuota saanut viriteltyä."
Se riippuu täysin siitä miten olet vieraskirjasi toteuttanut, mitään yleispätevää tapaa ei voi olla. Minä ainakin lähtisin siitä, että jotenkin jaottelen vieraskirjan erillisiksi viesteiksi ja sitten erottelen niistä haluamani näytille, mutta tämä nyt on vain minun mielipiteeni. Toisin sanoen: Kerro hieman enemmän ongelmasta niin apuakin on odotettavissa.
No voisin laittaa tähän näytille koodin tuosta vieraskirjasta josta haluan erisivulle 3 uusinta viestiä.
<?php //luetaan viestit taulukkoon $viestit = file("viestit.txt"); //käännetään taulukko, jolloin uusimmat viestit tulevat ylimmiksi $viestit = array_reverse($viestit); //viestien määrä on suoraan taulukon rivien määrä $viestimaara = count($viestit); //tulostetaan viestimäärä echo "<center><p>Yhteensä <b>$viestimaara</b> viestiä.</p><hr width=80%><center>"; //käydään jokainen viesti läpi for ($i = 0; $i < $viestimaara; $i++) { //$viestit[$i] on merkkijono, joka sisältää viestin $i tiedot //pystyviivoilla erotettuna; jaetaan viestit $tiedot-taulukkoon $tiedot = explode("|", $viestit[$i], 5); //erotellaan tiedot omiin muuttujiinsa $nimi = $tiedot[0]; $aika = $tiedot[1]; $viesti = $tiedot[2]; $fontti = $tiedot[3]; //lisätään viesteihin hymiöt $viesti = str_replace(":)", "<img src=\"smiley.gif\">", $viesti); $viesti = str_replace(":(", "<img src=\"sad.gif\">", $viesti); $viesti = str_replace(":o", "<img src=\"shocked.gif\">", $viesti); $viesti = str_replace(":P", "<img src=\"tongue.gif\">", $viesti); $viesti = str_replace(":@", "<img src=\"angry.gif\">", $viesti); $viesti = str_replace(":D", "<img src=\"cheesy.gif\">", $viesti); $viesti = str_replace("(H)", "<img src=\"cool.gif\">", $viesti); $viesti = str_replace(":'(", "<img src=\"cry.gif\">", $viesti); $viesti = str_replace(":$", "<img src=\"embarassed.gif\">", $viesti); $viesti = str_replace(":F", "<img src=\"grin.gif\">", $viesti); $viesti = str_replace(":(", "<img src=\"sad.gif\">", $viesti); //sensuroidaan kirosanat $viesti = str_replace("vittu", "*****", $viesti); $viesti = str_replace("Vittu", "*****", $viesti); $viesti = str_replace("VITTU", "*****", $viesti); $viesti = str_replace("v.i.t.t.u", "*****", $viesti); $viesti = str_replace("wittu", "*****", $viesti); $viesti = str_replace("w.i.t.t.u", "*****", $viesti); //tulostetaan viesti echo "<center><p>Lähettäjä / Sender: $nimi</p></center>"; echo "<center>Lähetetty / Sent: " . date("d.m.Y H:i", $aika) . "</center>"; echo '<center>Viesti / Message:<br><p style="font-family: '.$fontti.',serif;">'.$viesti.'<hr></p></center>'; } ?>
btw. Noita sensurointeja ei kannata tehdä joka kirjainkokoyhdystelmille erikseen. Laittaa vaikka joka kirjaimen pieneksi funktiolla strtolower($sensuroitu) niin kirjaimien koko ei haittaa.
Itse asiassa ei kannata laittaa mitään sensuureja lainkaan, sillä ohjelma ei voi tunnistaa, milloin kyseessä on oikeasti kiroilua. Esim. "sovittu" ei pääsisi läpi tuosta. Sitä paitsi viestistä saa paljon häijymmänkin ilman kiroilua. Ei siitä selviä muulla kuin manuaalisella valvonnalla.
Edit: Sitä paitsi noita v.i.t.t.u, w.i.t.t.u, v-i-t-t-u ym. kiertotapoja on käytännössä äärettömästi.
Niin on, mutta tuo ei ole se mihin hain apua.
Mutta ei silti mitään jos annatte muutenkin palautetta koodista.
Muutat for-silmukkaan, että "for ($i = 0; $i < 3; $i++)"
Niinpä niin. tyhmä mikä tyhmä
ihan näin offtopiccina, juha127 yritätkö itse tehdä mitään vai tuletko tänne heti kysymään neuvoa kun joku juttu ei onnistu.
Kannattaa tutkia koodeja ja lukea oppaita muuten ei opi mitään. Tuntuu nimittäin että joka toinen topicci on sinun aloittamasi. En tarkoita etteikö tänne saa tulla kysymään neuvoa, mutta tuollaiseen ongelmaan luulisi löytyvän vastaus esim. putkan oppaasta.
Mazuli puhuu asiaa. Kannattaisi itse yrittää vähän opetella ja ajatella.
Tuo koodi on kopioitu suoraan Putkan PHP-opassarjan 6. osasta kommentteineen; sitä on vain hieman muunneltu, ja uutena asiana tullut tuo str_replace-lauma. Näkeehän sen kommenteistakin. Ne ovat liian tarkoin ajateltuja ja selittäviä (itse asioiden tasosta puhumattakaan) ollakseen tämän saman henkilön kirjoittamia.
Metabolix kirjoitti:
Tuo koodi on kopioitu suoraan Putkan PHP-opassarjan 6. osasta kommentteineen; sitä on vain hieman muunneltu, ja uutena asiana tullut tuo str_replace-lauma. Näkeehän sen kommenteistakin. Ne ovat liian tarkoin ajateltuja ja selittäviä (itse asioiden tasosta puhumattakaan) ollakseen tämän saman henkilön kirjoittamia.
Totta, ainoastaan tuo "str_replace-lauma" olen itse tehnyt tuohon.
EDIT
Niin juu...
Tuo ettäkö en olisi etsinyt tuohon apua muualta ohjeista ja sensemmosist. Mut en vain osannut ajatella tuota, että olisi noin pienestä kiinni.
Niin, ja luulenpa, että olisit itse ymmärtänyt tuon, kun et olisi yrittänyt kopioida vaan olisit aivan itse kirjoittanut. Niin se vain on. Yleensä on paljon helpompi keksiä, "mitähän tähän pitäisi kirjoittaa" kuin "mitähän tästä pitäisi muuttaa", kuten kaikki ohjelmiaan debuganneet tietävät.
Niin ja kokeilemalla oppii parhaiten. Jos onnistuu saamaan vaikka koneen sekaisin oppii ainakin "että näin ei tehdä", vaikka jossain lukisikin että tee näin. Yksi hyvä tyyli on kokeilla muuttaa muuttujien arvoja, sillä tavalla oppii ymmärtämään mitä missäkin tehdään. Kannattaa kun tulee uusi functio vastaan käydä katsomassa php.net:istä mitä se tekee ja ottaa parametreikseen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.