Klargjort modul 2 for levering
parent
bb37c5512e
commit
6462e080b1
|
@ -25,4 +25,8 @@ hr {
|
|||
|
||||
table {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
input[type=number] {
|
||||
width: 70px;
|
||||
}
|
|
@ -13,29 +13,25 @@
|
|||
<h2>Sjekk av etternavn</h2>
|
||||
|
||||
<?php
|
||||
|
||||
// Lagt inn i en funksjon for enklere bruk senere.
|
||||
function capitalize($input){
|
||||
// Den innebygde funksjonen `mb_convert_case` med mode: MB_CASE_TITLE gjør at forbokstaven i hvert ord blir stor, med encodingen UTF-8. Det betyr at den også fungerer med æ, ø og å.
|
||||
return mb_convert_case($input, MB_CASE_TITLE, "UTF-8");
|
||||
}
|
||||
|
||||
// Henter etternavn fra GET, eller setter et standard.
|
||||
// Henter etternavn fra GET, eller bruker en standard.
|
||||
$etternavn = $_GET['etternavn'] ?? 'kArLsEn';
|
||||
|
||||
$fintEtternavn = capitalize($etternavn);
|
||||
// Den innebygde funksjonen `mb_convert_case` med mode: MB_CASE_TITLE gjør at forbokstaven i hvert ord blir stor, med encodingen UTF-8. Det betyr at den også fungerer med æ, ø og å.
|
||||
$fintEtternavn = mb_convert_case($etternavn, MB_CASE_TITLE, "UTF-8");
|
||||
|
||||
// mb_strlen teller tegn med en enkoding. For oss betyr det at den ikke teller våre spesialtegn (æ, ø og å) som 2.
|
||||
?>
|
||||
|
||||
<p>Etternavn: <strong><?=$etternavn;?></strong></p>
|
||||
<p>Etternavnet etter det er gjort finere: <strong><?=$fintEtternavn;?></strong></p>
|
||||
<p>Etternavnet er <code><?=mb_strlen($fintEtternavn);?> karakterer langt</code>.</p>
|
||||
<p>Etternavnet er <code><?=mb_strlen($fintEtternavn, "UTF-8");?> karakterer langt</code>.</p>
|
||||
<br>
|
||||
<p>
|
||||
<form>
|
||||
<form>
|
||||
<p>
|
||||
<input type="text" name="etternavn" value="<?=$etternavn;?>">
|
||||
<input type="submit" value="Sjekk navn...">
|
||||
</form>
|
||||
</p>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
<?php
|
||||
$input = $_POST['kode'] ?? '<?php denne teksten slettes ?> Hallo <strong>verden</strong>';
|
||||
|
||||
// Hvis setningen er sendt inn fra formen, så gjennomføres funksjonen. For å lett se hvordan funksjonen fungerer.
|
||||
if(isset($_POST['kode'])){
|
||||
// Funksjonen strip_tags kutter vekk alt som er inni tags.
|
||||
$input = strip_tags($input);
|
||||
|
|
|
@ -15,26 +15,33 @@
|
|||
// Insatt setning eller standard-setningen.
|
||||
$setning = $_POST['setning'] ?? 'Thereses familie skulle ha ris til middag. Hun ville heller ha en is å spise.';
|
||||
|
||||
//** Hvor mange ganger 'is' er i setningen **//
|
||||
$ganger = substr_count($setning, 'is');
|
||||
|
||||
//** Hvor mange ganger ordet 'is' finnes i setningen **//
|
||||
// REGEXP pattern: - det brukes for å enkelt finne ut hvor mange ganger bokstavene is omringet av 'whitespace' er i $setning.
|
||||
$re = '/(?:^|\s)is(?:\s|$)/mi';
|
||||
// Resultatene puttes i en array $resultater.
|
||||
preg_match_all($re, $setning, $resultater, PREG_SET_ORDER, 0);
|
||||
|
||||
// Tell hvor mange resultater som REGEXP-en finner.
|
||||
$ganger = count($resultater);
|
||||
$gangerOrd = count($resultater);
|
||||
|
||||
// Hvis det kun er én match så lagres teksten grammatisk riktig.
|
||||
// Hvis det kun er én match skrives tekstene grammatisk riktig.
|
||||
$gangerStr = $ganger." ganger";
|
||||
if($ganger == 1){
|
||||
$gangerStr = $ganger." gang";
|
||||
}
|
||||
// ... ellers skrives ganger i flertall.
|
||||
else {
|
||||
$gangerStr = $ganger." ganger";
|
||||
|
||||
$gangerOrdStr = $gangerOrd." ganger";
|
||||
if($gangerOrd == 1){
|
||||
$gangerOrdStr = $gangerOrd." gang";
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<p>Ved bruk av REGEXP er det ganske greit å finne ut hvor mange ganger et ORD finnes i en setning.</p>
|
||||
<p>Funksjonen <code>substr_count</code> teller hvor mange ganger en setnings-del er i en setning.</p>
|
||||
<p>Eventuelt ved bruk av REGEXP er det ganske greit å finne ut hvor mange ganger et ORD finnes i en setning.</p>
|
||||
<form action="index2_3.php" method="POST">
|
||||
<p>
|
||||
<textarea name="setning" style="width: 300px; height: 150px; font-size: 14px;"><?=$setning;?></textarea><br>
|
||||
|
@ -42,7 +49,8 @@
|
|||
</p>
|
||||
</form>
|
||||
|
||||
<p>Setningen har ordet "is" <?=$gangerStr;?></p>
|
||||
<p>Setningen har "is" <?=$gangerStr;?></p>
|
||||
<p>Setningen har ordet "is" <?=$gangerOrdStr;?></p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
// Insatte bursdag eller 'fødselsdagen' til PhP
|
||||
$bursdag = $_GET['bursdag'] ?? '08.06.1995';
|
||||
|
||||
// Bruker klassen DateTime og setter inn bruker $bursdag i angitt format.
|
||||
// Bruker klassen DateTime og setter inn brukerens $bursdag i angitt format.
|
||||
$bdag = DateTime::createFromFormat('d.m.Y', $bursdag);
|
||||
if(!$bdag){
|
||||
echo "<p>Greide ikke å forstå den insatte datoen. Prøv igjen.</p>";
|
||||
|
@ -30,12 +30,15 @@
|
|||
$datoStr = $bdag->format('j. M. Y');
|
||||
$deltaStr = $deltaAar." år og ".($deltaDager-($deltaAar*365))." dager";
|
||||
|
||||
// Hvis brukeren ikke enda har satt inn en dato, gi spesielt tilfelle:
|
||||
if(empty($_GET)){
|
||||
printf("<p>PHP som ble lansert '%s', er i dag <strong>%s</strong> gammelt.</p>", $datoStr, $deltaStr);
|
||||
}
|
||||
// Ellers hvis datoen er i fortiden
|
||||
elseif($forskjell->format("%R") != "-") {
|
||||
printf("<p>Personer med fødselsdato '%s' er i dag <strong>%s</strong> gamle.</p>", $datoStr, $deltaStr);
|
||||
}
|
||||
// Til slutt hvis datoen er i fremtiden
|
||||
else {
|
||||
printf("<p>Personer med fødselsdato '%s' blir født om <strong>%s</strong>.</p>", $datoStr, $deltaStr);
|
||||
}
|
||||
|
|
|
@ -13,21 +13,29 @@
|
|||
|
||||
<?php
|
||||
|
||||
function genPwd($len = 8){
|
||||
|
||||
// Liste over støtta tegn. ÆØÅ osv. er ikke med fordi de blir to tegn og ikke funker lengre nede.
|
||||
$characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
function genPwd($len = 8): string {
|
||||
// Liste over tegn som kan bli med i passordet.
|
||||
$characterString = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ";
|
||||
$numbers = "1234567890";
|
||||
$special = "!#%&/()=?+*-:;";
|
||||
|
||||
// Converterer tegn-lista til en array av UTF-8 tegn. (Kan funke uten denne som tilfellene med tallene eller spesial-tegnene, men da støttes ikke UTF-8 (æøå))
|
||||
$characters = preg_split('//u', $characterString, null, PREG_SPLIT_NO_EMPTY);
|
||||
|
||||
// Tellere så vi kan bekrefte at passordet inneholder minst ett av hver type.
|
||||
$numCount = 0;
|
||||
$speCount = 0;
|
||||
$chaCount = 0;
|
||||
|
||||
// Prosent-sjangse for at nummer og spesial-tegn blir valgt som neste tegn i passordet.
|
||||
$numChance = 30;
|
||||
$specChance = 20;
|
||||
|
||||
$pwd = "";
|
||||
|
||||
// Løkke som går over hvert tegn av det nye passordet.
|
||||
for($i = 0; $i < $len; $i++){
|
||||
if($i==0){ $rand = 100; } // Sikre at første tegn er en bokstav.
|
||||
|
@ -47,7 +55,7 @@
|
|||
}
|
||||
// Ellers skriv en bokstav.
|
||||
else {
|
||||
$pwd .= $characters[ random_int(1, strlen($characters) )-1 ];
|
||||
$pwd .= $characters[ random_int(1, count($characters) )-1 ];
|
||||
$chaCount++;
|
||||
}
|
||||
}
|
||||
|
@ -58,9 +66,17 @@
|
|||
$pwdLen = $_GET['pwdlen'] ?? 8;
|
||||
?>
|
||||
|
||||
<p><strong><?=genPwd($pwdLen);?></strong></p>
|
||||
<p>
|
||||
<?php
|
||||
try {
|
||||
echo "<strong>".genPwd($pwdLen)."</strong>";
|
||||
} catch (Exception $e) {
|
||||
echo "<i><strong>Feil!</strong> Kanskje en god kilde for tilfeldighet ble ikke funnet.</i><br></p><p>".$e;
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
|
||||
<p><form><input type="number" name="pwdlen" value="<?=$pwdLen;?>" min="8" max="42"><input type="submit" value="Generer nytt..."></form></p>
|
||||
<form><p><input type="number" name="pwdlen" value="<?=$pwdLen;?>" min="8" max="42"><input type="submit" value="Generer nytt..."></p></form>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in New Issue