145 lines
3.4 KiB
PHP
145 lines
3.4 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="da">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
<title>Sætningsgenerator</title>
|
|
<style>
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
html {
|
|
height: 100%;
|
|
}
|
|
|
|
h1 {
|
|
text-align: center;
|
|
margin-top: 10%;
|
|
}
|
|
|
|
span {
|
|
background: #333;
|
|
color: #FFF;
|
|
padding: 0.3em;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<?php
|
|
$tal = rand(2, 79);
|
|
$model = rand(0, 1);
|
|
$end = array(".", "!", "?", "!?", "...", " :-)", " ;-)");
|
|
$tegn = $end[array_rand($end)];
|
|
|
|
$result = "";
|
|
|
|
$ord = array(
|
|
"sub" => JSON_Decode(file_get_contents('data/navneord.json')),
|
|
"ver" => JSON_Decode(file_get_contents('data/verber.json')),
|
|
"adj" => JSON_Decode(file_get_contents('data/adj.json')),
|
|
"pro" => array("jeg", "han", "hun", "den", "det", "de", "I", "vi", "du", "De"),
|
|
"tid" => array("før", "efter", "imens", "inden"),
|
|
"for" => array("over", "under", "ved siden af", "bag", "foran", "overfor"),
|
|
);
|
|
|
|
function rando($arr)
|
|
{
|
|
return $arr[array_rand($arr)];
|
|
}
|
|
|
|
function word($cla, $conj = null)
|
|
{
|
|
global $ord;
|
|
$word = $ord[$cla][array_rand($ord[$cla])]; //rand(0,count($ord[$cla]));
|
|
if ($conj == null) {
|
|
return $word;
|
|
} else {
|
|
return $word[$conj];
|
|
}
|
|
}
|
|
|
|
function lego($conj = 0)
|
|
{
|
|
// 0 = ubestemt ental, eks. "en grim tyr" el. "et dumt æg".
|
|
// 1 = bestemt ental, eks. "den grimme tyr" el. "det dumme æg"
|
|
// 2 = ubestemt flertal, eks. "ægte tedåser"
|
|
// 3 = bestemt flertal, eks. "de rådne æbler"
|
|
$main = word("sub");
|
|
$desc = word("adj");
|
|
if ($main[4] == "t") {
|
|
$neutrum = true;
|
|
} else {
|
|
$neutrum = false;
|
|
}
|
|
|
|
switch ($conj) {
|
|
case 0:
|
|
if ($neutrum) {
|
|
$phrase = "et " . word("adj")[1] . " " . $main[0];
|
|
} else {
|
|
$phrase = "en " . word("adj")[0] . " " . $main[0];
|
|
}
|
|
break;
|
|
case 1:
|
|
if ($neutrum) {
|
|
$phrase = "det " . word("adj")[2] . " " . $main[0];
|
|
} else {
|
|
$phrase = "den " . word("adj")[2] . " " . $main[0];
|
|
}
|
|
break;
|
|
case 2:
|
|
$phrase = word("adj")[2] . " " . $main[2];
|
|
break;
|
|
case 3:
|
|
$phrase = "de " . word("adj")[2] . " " . $main[2];
|
|
break;
|
|
}
|
|
return $phrase;
|
|
}
|
|
|
|
switch ($model) {
|
|
case 0:
|
|
if ($tal > 1) {
|
|
$b = lego(2);
|
|
} else {
|
|
$b = lego(rand(0, 1));
|
|
}
|
|
$c = word("ver", rand(1, 4));
|
|
$d = word("sub", rando([1, 3]));
|
|
if (rand(0, 1) > 0) {
|
|
$which = rand(1, 3);
|
|
switch ($which) {
|
|
case 1:
|
|
$b = mb_strtoupper($b);
|
|
break;
|
|
case 2:
|
|
$c = mb_strtoupper($c);
|
|
break;
|
|
case 1:
|
|
$d = mb_strtoupper($d);
|
|
break;
|
|
}
|
|
}
|
|
$result = "$tal $b $c $d$tegn";
|
|
break;
|
|
|
|
case 1:
|
|
$a = lego(rando([0, 1, 3]));
|
|
$b = word("ver", rand(1, 4));
|
|
if ($tal > 1) {
|
|
$c = word("sub", 2);
|
|
} else {
|
|
$c = word("sub", rando([1, 3]));
|
|
}
|
|
$result = "$a $b $tal $c$tegn";
|
|
break;
|
|
}
|
|
?><h1><span><?=ucwords($result, "|")?></span></h1>
|
|
</body>
|
|
|
|
</html>
|