Děláš Caesarovu šifru? .
Jednoduché řešení:
<?php
$key = array('a' => 'f','b' => 'g','c' => 'h','d' => 'i','e' => 'j','f' => 'k','g' => 'l','h' => 'm','i' => 'n','j' => 'o','k' => 'p','l' => 'q','m' => 'r','n' => 's','o' => 't','p' => 'u','q' => 'v','r' => 'w','s' => 'x','t' => 'y','u' => 'z','v' => 'a','w' => 'b','x' => 'c','y' => 'd','z' => 'e', '_' => '_');
$zadani = 'nejaky_nesmyslny_text';//$_GET['zadani'];
$delka = strlen($zadani);
$zadani_new = '';
for($i=0;$i<$delka;$i++)
{
$zadani_new .= $key[$zadani[$i]];
}
echo $zadani_new;
?>
To pole snad není problém nechat si ho vydegenerovat automaticky:
<?php
echo '$key = array(';
$posunuti = 5; // tohle si upravis, jak budes chtit
for($i=97; $i<=122;$i++)
{
echo "'".chr($i)."' => '";
if($i+$posunuti > 122) echo chr(($i+$posunuti)-122+96); else echo chr($i+$posunuti);
echo "'";
if($i != 122) echo ",";
}
echo ");"
?>
Výstup:$key = array('a' = > 'f','b' = > 'g','c' = > 'h','d' = > 'i','e' = > 'j','f' = > 'k','g' = > 'l','h' = > 'm','i' = > 'n','j' = > 'o','k' = > 'p','l' = > 'q','m' = > 'r','n' = > 's','o' = > 't','p' = > 'u','q' = > 'v','r' = > 'w','s' = > 'x','t' = > 'y','u' = > 'z','v' = > 'a','w' = > 'b','x' = > 'c','y' = > 'd','z' = > 'e');
Bonus (ber to jako dárek k Velikonocím

function caesar_cipher($text,$posunuti)
{
$text_new = '';
$key = array();
for($i=97; $i<=122;$i++)
{
$key[chr($i)] = ($i+$posunuti > 122) ? chr(($i+$posunuti)-122+96) : chr($i+$posunuti);
}
$key[' '] = '_';
$text = strtolower($text);
for($i=0;$i<strlen($text);$i++)
{
$text_new .= $key[$text[$i]];
}
return $text_new;
}
echo caesar_cipher('Nejaky text o nicem',15); //vrati "ctypzn_itmi_d_cxrtb"
Je to napsaný trochu prasácky (PHPčka jsem se nedotknul pár měsíců), ale hlavně, že to funguje
