Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: 3 ensimmäistä viestiä

Sivun loppuun

juha127 [06.11.2005 14:23:26]

#

Mitenkä saisin tulostettua vieraskirjasta vain 3 ensimmäistä viestiä näkyviin. "Itse en tuota saanut viriteltyä."

Tempfile [06.11.2005 14:38:11]

#

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.

juha127 [06.11.2005 14:43:14]

#

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>';
}
?>

rndprogy [06.11.2005 15:28:14]

#

btw. Noita sensurointeja ei kannata tehdä joka kirjainkokoyhdystelmille erikseen. Laittaa vaikka joka kirjaimen pieneksi funktiolla strtolower($sensuroitu) niin kirjaimien koko ei haittaa.

hunajavohveli [06.11.2005 17:02:37]

#

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.

juha127 [06.11.2005 17:20:20]

#

Niin on, mutta tuo ei ole se mihin hain apua.
Mutta ei silti mitään jos annatte muutenkin palautetta koodista.

Metabolix [06.11.2005 17:44:26]

#

Muutat for-silmukkaan, että "for ($i = 0; $i < 3; $i++)"

juha127 [06.11.2005 17:54:32]

#

Niinpä niin. tyhmä mikä tyhmä

Mazuli [06.11.2005 19:57:28]

#

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.

Metabolix [06.11.2005 20:03:08]

#

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.

juha127 [06.11.2005 20:07:03]

#

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.

Metabolix [06.11.2005 20:32:50]

#

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.

Mazuli [07.11.2005 15:21:13]

#

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.


Sivun alkuun

Vastaus

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

Tietoa sivustosta