| Autor | Zpráva | ||
|---|---|---|---|
| STS Profil * |
#1 · Zasláno: 24. 2. 2011, 22:38:21
Neví někdo, jak udělat náhodný text přes php nebo javascript?
|
||
| panther Profil |
#2 · Zasláno: 24. 2. 2011, 22:45:39
STS:
ať v jednom či druhém, najdi si práci s poli a funkce s tím související. |
||
| petr 6 Profil |
#3 · Zasláno: 24. 2. 2011, 23:02:39
V principu je to obměna náhodného obrázku z místního FAQ a bylo to popsáno již mnohokrát, takže hledáním zde v diskusi nebo na googlu jistě najdeš spoustu dalších hotových řešení.
(Pokud se tedy ovšem jen ptáš, zda to někdo ví, tak ano, ví.) |
||
| Miloš Profil |
#4 · Zasláno: 25. 2. 2011, 00:40:35 · Upravil/a: Miloš
Pokud toužíš po ukázce, jednu mám na skladě; je to asi pěkný bastl (nejsem programátor), ale funguje.
http://mfp.php5.cz/ <?php
function versuj(){
require './pole.php'; // načti slabiky, se kterými se bude pracovat
for ($SlovRad = rand(3, 3), $radek1 = $radek2 = array(); $SlovRad > 0; $SlovRad-- ) { //naplnění řádku
for ($SlabSlov = rand(1, 4), $SlovoRadek2 = $SlovoRadek1 = array(); $SlabSlov > 0; $SlabSlov-- ) { //naplnění slov
$nahoda = rand(0, count($slabiky) - 1);
array_push($SlovoRadek1, $slabiky[$nahoda]); //naplnění 1. slova --> 1 náhodná slabika
usleep(1); SRand((double)MicroTime()*1e6); // OHAVNÝ ŘÁDEK, ALE BEZ TOHO SE "NÁHODNÉ" VÝSLEDKY PŘÍLIŠ ČASTO OPAKUJÍ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
array_push($SlovoRadek2, $slabiky[array_rand($slabiky)]); //naplnění 2. slova --> 1 náhodná slabika
};
for ($i = 0; $i < count($SlovoRadek1); $i++) { // sekvenční čtení všech slov 1. řádku
array_push($radek1, $SlovoRadek1[$i]); // a jejich nacpání do pole $radek1
array_push($radek2, $SlovoRadek2[$i]); // a jejich nacpání do pole $radek2
}
array_push($radek1, " "); array_push($radek2, " "); //za každé slovo mezeru
};
if (rand(1, 4) > 1) { //S pravděpodobností 3:1
array_pop($radek1); array_pop($radek2); //Zruší poslední mezeru
}
$konec = $slabiky[array_rand($slabiky)];
for ($i = 0; $i < count($radek1); $i++){echo $radek1[$i];} echo $konec;
echo "<br>";
for ($i = 0; $i < count($radek2); $i++){echo $radek2[$i];} echo $konec;;
};
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache, must-revalidate">
<meta http-equiv="expires" content="0">
<title>Vygenerovaná básnička se stejným počtem slov s rýmem na konci</title>
</head>
<body>
<h1>Bláznička</h1>
<p><?php versuj();echo "<br>";versuj(); ?></p>
</body>
</html>a soubor pole.php s následujícím obsahem (zkráceno): <?php $slabiky = array( "ab", "ac", "ač", "ad", // a tak dál, spousta různých slabik... "číz", "číž", "číž"); ?> |
||
| Darker Profil |
#5 · Zasláno: 25. 2. 2011, 02:41:21
Totéž v JS:
function random(length) {
var text=rnd(1);
for(var i=0;i<length-2;i++){
if(Math.random()>0.91&&text[text.length-1]!=" ") text+=". "+rnd(1);
else if(Math.random()>0.75) text+=" ";
else text+=rnd(1).toLowerCase();
};
text+=rnd(2).toLowerCase()+".";
return text;
}
function rnd(max) {
var abc = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
var nahodneslovo="";
for(var i=0;i<max;i++) {
nahodneslovo+=abc[Math.floor(Math.random()*abc.length)]
}
return nahodneslovo;
}
Najdi si, jak převádět čísla na písmenka (myslím, že to jde. Skus hledat třeba „CharAt javascript“) a nebudeš potřebovat funkci rnd. |
||
|
Časová prodleva: 15 let
|
|||
0