Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Satunnainen teksti rand-funktiolla

Sivun loppuun

Antti80 [24.07.2006 11:29:51]

#

Nyt pahasti jumittaa. :) Mites esim. rand-funktiolla voisi satunnaisen tekstin tulostaa?

Paljonkohan noita "=" merkkejä piti laittaa.
Olisiko jotenkin näin: (ei vain toimi)

rand(1,2);

if (rand==1)
$display == "eka teksti";

if (rand==2)
$display == "toka teksti";

echo $display;

Blaze [24.07.2006 11:42:58]

#

Tunge tekstit taulukkoon, ja nappase taulukosta satunnainen alkio.

$ar = array("moi", "hei", "päivää", "gg");
echo array_rand($ar);

Antti Laaksonen [24.07.2006 11:47:05]

#

Pieni muutos Blazen koodiin, koska array_rand palauttaa taulukon kohdan:

echo $ar[array_rand($ar)];

Myös rand-funktiota voi käyttää:

$tekstit = array("eka", "toka", "kolmas", "neljäs");

$kohta = rand(0, count($tekstit) - 1);

echo $tekstit[$kohta];

Siis rand-funktio palauttaa kokonaisluvun, joka on sille annettujen parametrien välillä. Sijoituksessa on yksi =-merkki, vertailussa taas kaksi. Muuttujan alkuun tulee aina $-merkki.

Antti80 [24.07.2006 12:09:01]

#

Kiitos.

Mikä tuon "- 1" tarkoitus on?

Voi olla, että pitää vähän html-koodia, esim linkki laittaa myös, mutta pitäis senkin onnistua... Testataan.

Antti Laaksonen [24.07.2006 12:13:10]

#

Taulukon alkioiden määrä on yhtä suurempi kuin viimeisen alkion indeksi. Tämä johtuu siitä, että numerointi alkaa nollasta. Esim. jos taulukossa $taulu on kolme alkiota, niihin viitataan tunnuksilla $taulu[0], $taulu[1] ja $taulu[2], ja samaan aikaan count($taulu) on 3.

Antti80 [24.07.2006 14:05:06]

#

Ok.

Sain html-koodia sekaan myös, siis kun laitan arrayn sisään. Mutta kun laitoin php includen niin ei tulosta includen tiedostosta mitään. Onko sitä mahdollista saada toimimaan?

$tekstit = array("jotain muuta", "<font color=red><?php include(randomprofiili.php);?></font> kuuluu myös kerhoomme");

Lebe80 [24.07.2006 14:13:22]

#

Juu, tuskin taulukkoon voi ihan includella sisällyttää tietoa...
Tee mieluummin funktio, joka palauttaa haluttua tietoa
Muutenkin kannattaa suunnitella paremmin miten tuon toteuttaisi, mutta laitan nyt esimerkin tuohon sinun tapaasi.

function randomProfiili(){
// Tämä esim. tietokantahakuna, tai miten lie etsitäänkin.
$userName = "haluttu nimi";
return $userName;
}
$tekstit = array( randomProfiili(), randomProfiili() );

Antti80 [24.07.2006 18:22:58]

#

Voi olla että muutan tota systeemiä vähän ja en käytä includea. Kiitos avusta kuitenkin.

Pakko kuitenkin kysyä, että eikö tota rand-funktiota tai jotain vastaavaa voi käyttää jotenkin näin, eli if-lauseilla:

//arvo satunnaisesti 1 tai 2.
rand(1,2)
if (rand==1)
$display == "eka teksti";
if (rand==2)
$display == "toka teksti";
echo $display;

Eli ei tarvitsisi arrayta käyttää, ja tossa saisi includen toimimaan?

Antti Laaksonen [24.07.2006 18:27:55]

#

Voi tehdä ilman taulukkoa:

$arpa = rand(1, 2);
if ($arpa == 1) $teksti = "eka";
if ($arpa == 2) $teksti = "toka";
echo $teksti;

Huomaa, että arvottu luku pitää tallentaa muuttujaan.

Antti80 [24.07.2006 18:43:49]

#

Iso kiitos, mutta tossakaan ei saa includea toimimaan?

Antti Laaksonen [24.07.2006 18:54:05]

#

Saa kyllä, liitettävän sivun voi mainiosti arpoa samalla tavalla. Esim. äskeisen esimerkin voisi päättää näinkin:

include($teksti . ".php");

Nyt sivulle liitetään joko eka.php tai toka.php.

Antti80 [24.07.2006 21:10:52]

#

Olette loistava, kiitos. :)

Nyt toimii kuin junan vessa ja voin soveltaa itse lisää tuosta esimerkistä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta