Generátor básní v PHP
Sú to moje začiatky v OOP, nie je to má výhovorka, skôr nedostatok skúseností. Tak keď tam nájdete nejaké chyby, napíšte prosím do komentárov správne riešenie. vďaka
<?php session_start(); header('Content-type: text/html; charset=utf-8'); /* Velmi jednoduchý generátor básniček. Rozšíření je možné podle vašich potřeb. Je to můj první větší script v OOP, tak to prosím berte velmi s rezervou. */ class Basen { public $obsah = ""; // záznam obsahu básně private $pocet_slok = 1; // počet slok básně private $vety = array("prid rod pod slov","pod prid rod slov","pod rod slov","rod priv pod slov"); // styl vět private $styl = array("112211","221133","121233","332211","1122","1313","2332","11221122"); // styl básně private $slova = array( "rod1" => array("muž","syn","dědeček","starosta","alkoholik","policista","saniták","svářeč","programátor","řezník","hrubián","hlídač krav","veterán"), "rod2" => array("sestra","matka","dcera","jeptiška","dojička","zpěvačka","básnířka","malířka","kurva","řidička","lazebnice","krakatice","večernice","polednice"), "rod3" => array("dítě","prase","struhadlo","švihadlo","strašidlo","mýdlo","jídlo","víno","leštidlo","lepidlo","sedadlo","lehátko","ořezávátko","na koberce klepadlo"), "pod1" => array("kredenc","počítač","stůl","parní válec","soustruh","olejový hever","boiler","traktor","klakson","katamarán","hoboj","router"), "pod2" => array("postel","kabelku","žehličku","ředkvičku","lampičku","tlamičku","lahvičku","stoličku","překližku","vydličku","hoblovku","vrtačku"), "pod3" => array("pivo","auto","letadlo","pyžamo","zrdcadlo","lepidlo","hovado","lákadlo","hekadlo","tričko","počítadlo","švihadlo"), "prid1" => array("velký","barevný","pevný","silný","jasný","přesný","krásný","starý","unavený","naštvaný","kouzelný","prolhaný","proradný","záhadný"), "prid2" => array("tlustá","šílená","ožralá","krásná","štíhlá","vláčná","drahá","levná","mladá","pihovatá","proradná","osamělou","odohodlanou","vyplašená"), "prid3" => array("skvělé","drahé","malé","silné","výkonné","bouřlivé","strnulé","rozbité","přiskříplé","zapomenuté","vážné","odhodlané","unavené","uplacené"), "slov1" => array("rozladil","hladil","radil","rozbil","zastřelil","zabalil","zapálil","polil","rozdrobil","opravil","opálil","chytil","odpálil","opustil","obrátil"), "slov2" => array("rozbila","štípala","vábila","hrozila","žárlila","shodila","zkrátila","mlátila","vypnula","předělala","přeřezala","osolila","omlátila","nabarvila"), "slov3" => array("letělo","hledělo","stávalo","načalo","bolelo","křupalo","chápalo","tápalo","skákalo","přestalo","řvalo","žvatlalo","zuřilo","schovalo","klepalo"), "priv1" => array("své","vlastní","kamarádův","otcův","drahý"), "priv2" => array("svou","cizí","novou","papírovou","zlevněnou"), "priv3" => array("své","jiné","zahraniční","levné","rozbité"), ); // pole slov // upraví větu, první písmeno bude velké private function uprav_vetu($s, $e ='utf-8') { if (function_exists('mb_strtoupper') && function_exists('mb_substr') && !empty($s)) { $s = mb_strtolower($s, $e); $u = mb_strtoupper($s, $e); preg_match('/(.)/us', $u, $m); $s = $m[1] . mb_substr($s, 1, mb_strlen($s, $e), $e); } else { $s = ucfirst($s); } return $s; } // vytvoří větu, vybere styl a doplní slova private function vrat_vetu($x,$veta) { $veta = preg_replace("/(prid)/i",($this->slova["prid$x"][array_rand($this->slova["prid$x"])]),$veta); $veta = preg_replace("/(rod)/i",($this->slova["rod$x"][array_rand($this->slova["rod$x"])]),$veta); $veta = preg_replace("/(pod)/i",($this->slova["pod$x"][array_rand($this->slova["pod$x"])]),$veta); $veta = preg_replace("/(slov)/i",($this->slova["slov$x"][array_rand($this->slova["slov$x"])]),$veta); $veta = preg_replace("/(priv)/i",($this->slova["priv$x"][array_rand($this->slova["priv$x"])]),$veta); return $this->uprav_vetu($veta)."."; } // vytvoří tituloek básně private function titulek() { return "<h1>".($this->vrat_vetu(rand(1,3),"prid rod"))."</h1>\n\n"; } // vytvoří obsah básně, vegeneruje věty a pošle je ke zpracování do vrat_vetu private function vytvor_obsah() { $obsah = ""; for($b=0;$b<$this->pocet_slok;$b++) { $obsah .= "<p>"; $x = rand(0,7); for($a=0;$a<(strlen($this->styl[$x]));$a++) { $veta = $this->vety[array_rand($this->vety)]; $obsah .= $this->vrat_vetu($this->styl[$x][$a],$veta)."<br />\n"; } $obsah .= "</p>\n"; } return $obsah; } public function __construct($n) { if($n < 1) $n = rand(2,5); $this->pocet_slok = $n; } public function __toString() { $this->obsah .= $this->titulek(); $this->obsah .= $this->vytvor_obsah(); return $this->obsah; } } // použití třídy Basen // 0 = použije se náhodné číslo mezi 1 - 5, jinak se vrtátí tolik slok kolik budete potřebovat $basen = new Basen(20); echo $basen; ?>
Galéria
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 252x (39.07 kB)
Aplikácia je vrátane zdrojových kódov v jazyku PHP OOP