Nyt pahasti jumittaa. :) Mites esim. rand-funktiolla voisi satunnaisen tekstin tulostaa?
Paljonkohan noita "=" merkkejä piti laittaa.
Olisiko jotenkin näin: (ei vain toimi)
Tunge tekstit taulukkoon, ja nappase taulukosta satunnainen alkio.
$ar = array("moi", "hei", "päivää", "gg"); echo array_rand($ar);
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.
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.
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.
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");
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() );
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?
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.
Iso kiitos, mutta tossakaan ei saa includea toimimaan?
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.
Olette loistava, kiitos. :)
Nyt toimii kuin junan vessa ja voin soveltaa itse lisää tuosta esimerkistä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.