Compare commits
4 commits
3b1cb23b95
...
42a770e21c
Author | SHA1 | Date | |
---|---|---|---|
Rasmus Malver | 42a770e21c | ||
Michal Skogemann | 31b656c410 | ||
Michal Skogemann | 1e718a0498 | ||
Michal Skogemann | 1ef2ed20e3 |
150
core/PasswordPhraseGenerator.php
Normal file
150
core/PasswordPhraseGenerator.php
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PasswordPhraseGenerator
|
||||||
|
*/
|
||||||
|
class PasswordPhraseGenerator
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Initializing object
|
||||||
|
*/
|
||||||
|
function __construct()
|
||||||
|
{
|
||||||
|
$this->sub = json_decode(file_get_contents('data/navneord.json'));
|
||||||
|
$this->ver = json_decode(file_get_contents('data/verber.json'));
|
||||||
|
$this->adj = json_decode(file_get_contents('data/adj.json'));
|
||||||
|
$this->ord = [
|
||||||
|
"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" => ["jeg", "han", "hun", "den", "det", "de", "I", "vi", "du", "De"],
|
||||||
|
"tid" => ["før", "efter", "imens", "inden"],
|
||||||
|
"for" => ["over", "under", "ved siden af", "bag", "foran", "overfor"],
|
||||||
|
];
|
||||||
|
$this->tal = rand(2, 79);
|
||||||
|
$this->model = rand(0, 1);
|
||||||
|
$this->end = array(".", "!", "?", "!?", "...", " :-)", " ;-)");
|
||||||
|
$this->tegn = $this->end[array_rand($this->end)];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Random sub element
|
||||||
|
*
|
||||||
|
* @param array $arr
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function _rando($arr)
|
||||||
|
{
|
||||||
|
return $arr[array_rand($arr)];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Select random word from class
|
||||||
|
*
|
||||||
|
* @param string $cla
|
||||||
|
* @param int $conj
|
||||||
|
* @return string $word
|
||||||
|
*/
|
||||||
|
private function _word($cla, $conj = null)
|
||||||
|
{
|
||||||
|
$word = $this->ord[$cla][array_rand($this->ord[$cla])]; //rand(0,count($ord[$cla]));
|
||||||
|
if ($conj == null) {
|
||||||
|
return $word;
|
||||||
|
} else {
|
||||||
|
return $word[$conj];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main model generator
|
||||||
|
*
|
||||||
|
* @param integer $conj
|
||||||
|
* @return string $phrase
|
||||||
|
*/
|
||||||
|
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 = $this->_word("sub");
|
||||||
|
$desc = $this->_word("adj");
|
||||||
|
if ($main[4] == "t") {
|
||||||
|
$neutrum = true;
|
||||||
|
} else {
|
||||||
|
$neutrum = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($conj) {
|
||||||
|
case 0:
|
||||||
|
if ($neutrum) {
|
||||||
|
$phrase = "et " . $this->_word("adj")[1] . " " . $main[0];
|
||||||
|
} else {
|
||||||
|
$phrase = "en " . $this->_word("adj")[0] . " " . $main[0];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if ($neutrum) {
|
||||||
|
$phrase = "det " . $this->_word("adj")[2] . " " . $main[0];
|
||||||
|
} else {
|
||||||
|
$phrase = "den " . $this->_word("adj")[2] . " " . $main[0];
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$phrase = $this->_word("adj")[2] . " " . $main[2];
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$phrase = "de " . $this->_word("adj")[2] . " " . $main[2];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $phrase;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate phrase
|
||||||
|
*
|
||||||
|
* @return string $phrase
|
||||||
|
*/
|
||||||
|
public function generate()
|
||||||
|
{
|
||||||
|
switch ($this->model) {
|
||||||
|
case 0:
|
||||||
|
if ($this->tal > 1) {
|
||||||
|
$b = $this->lego(2);
|
||||||
|
} else {
|
||||||
|
$b = $this->lego(rand(0, 1));
|
||||||
|
}
|
||||||
|
$c = $this->_word("ver", rand(1, 4));
|
||||||
|
$d = $this->_word("sub", $this->_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 = "{$this->tal} $b $c $d{$this->tegn}";
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$a = $this->lego($this->_rando([0, 1, 3]));
|
||||||
|
$b = $this->_word("ver", rand(1, 4));
|
||||||
|
if ($this->tal > 1) {
|
||||||
|
$c = $this->_word("sub", 2);
|
||||||
|
} else {
|
||||||
|
$c = $this->_word("sub", $this->_rando([1, 3]));
|
||||||
|
}
|
||||||
|
$result = "$a $b {$this->tal} $c{$this->tegn}";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ucwords($result);
|
||||||
|
}
|
||||||
|
}
|
0
core/functions.php
Normal file
0
core/functions.php
Normal file
145
index.php
145
index.php
|
@ -1,111 +1,48 @@
|
||||||
|
<?php
|
||||||
|
require_once 'core/PasswordPhraseGenerator.php';
|
||||||
|
|
||||||
|
$sentence = new PasswordPhraseGenerator;
|
||||||
|
|
||||||
|
$result = $sentence->generate();
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="da">
|
<html lang="da">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>Sætningsgenerator</title>
|
<title>Sætningsgenerator</title>
|
||||||
<style>
|
<style>
|
||||||
*{margin:0;padding:0;}html{height:100%;}
|
* {
|
||||||
h1{text-align:center;margin-top:10%;}
|
margin: 0;
|
||||||
</style>
|
padding: 0;
|
||||||
</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;}
|
|
||||||
|
|
||||||
print_r($main);
|
|
||||||
|
|
||||||
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]));
|
|
||||||
$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;
|
|
||||||
}
|
|
||||||
#$result=str_replace("\n","",$result);
|
|
||||||
|
|
||||||
/*
|
html {
|
||||||
tal tillæg navneord verb navneord
|
height: 100%;
|
||||||
tillæg navneord verb tal navneord
|
}
|
||||||
stedord verb tal tillægsord navneord
|
|
||||||
stedord verb tid stedord verb tillægsord navneord
|
|
||||||
stedord tillægsord navneord! stedord verbum.
|
|
||||||
|
|
||||||
*/
|
h1 {
|
||||||
?>--><h1><?=ucwords($result,"|")?></h1>
|
text-align: center;
|
||||||
|
margin-top: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.the-result {
|
||||||
|
background: #333;
|
||||||
|
color: #FFF;
|
||||||
|
padding: 0.3em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<h1>
|
||||||
|
<span class="the-result"><?=$result?></span>
|
||||||
|
</h1>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
|
||||||
|
</html>
|
|
@ -8,10 +8,9 @@
|
||||||
<style>
|
<style>
|
||||||
*{margin:0;padding:0;}html{height:100%;}
|
*{margin:0;padding:0;}html{height:100%;}
|
||||||
h1{text-align:center;margin-top:10%;}
|
h1{text-align:center;margin-top:10%;}
|
||||||
span{background: #333;color:#FFF;padding:0.3em;}
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body><!--
|
||||||
<?php
|
<?php
|
||||||
$tal = rand(2,79);
|
$tal = rand(2,79);
|
||||||
$model = rand(0,1);
|
$model = rand(0,1);
|
||||||
|
@ -51,6 +50,8 @@ function lego($conj=0){
|
||||||
$desc = word("adj");
|
$desc = word("adj");
|
||||||
if($main[4]=="t"){$neutrum=true;}else{$neutrum = false;}
|
if($main[4]=="t"){$neutrum=true;}else{$neutrum = false;}
|
||||||
|
|
||||||
|
print_r($main);
|
||||||
|
|
||||||
switch($conj){
|
switch($conj){
|
||||||
case 0:
|
case 0:
|
||||||
if($neutrum){
|
if($neutrum){
|
||||||
|
@ -85,17 +86,6 @@ switch($model){
|
||||||
}
|
}
|
||||||
$c = word("ver",rand(1,4));
|
$c = word("ver",rand(1,4));
|
||||||
$d = word("sub",rando([1,3]));
|
$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";
|
$result="$tal $b $c $d$tegn";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -106,6 +96,16 @@ switch($model){
|
||||||
$result = "$a $b $tal $c$tegn";
|
$result = "$a $b $tal $c$tegn";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
?><h1><span><?=ucwords($result,"|")?></span></h1>
|
#$result=str_replace("\n","",$result);
|
||||||
|
|
||||||
|
/*
|
||||||
|
tal tillæg navneord verb navneord
|
||||||
|
tillæg navneord verb tal navneord
|
||||||
|
stedord verb tal tillægsord navneord
|
||||||
|
stedord verb tid stedord verb tillægsord navneord
|
||||||
|
stedord tillægsord navneord! stedord verbum.
|
||||||
|
|
||||||
|
*/
|
||||||
|
?>--><h1><?=ucwords($result,"|")?></h1>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
145
index__.php
Normal file
145
index__.php
Normal file
|
@ -0,0 +1,145 @@
|
||||||
|
<!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>
|
Loading…
Reference in a new issue