Autor | Zpráva | ||
---|---|---|---|
krystof Profil * |
#1 · Zasláno: 4. 5. 2011, 18:34:18
zdravím,
potřebuju udělat šifru ( caesarova šifra ) zatím mám toto: <?php $cislo="396"; $str="Moje oblibena pisnicka"; $str= STRTOUPPER($str); echo $str; echo "<br>" ; $delka=STRLEN($str) ; echo "<br>" ; echo "<div><br>" ; for ($i = 0, $to = $delka; $i < $to; $i++) { echo chr(ord($str[$i]) + $cislo[i]); } ?> Potřebuju, aby se mi písmena posunuli nejdřív o 3, pak 9 a nakonec 3, což se bude opakovat. První 3 písmena mi to posune, ale další již ne, předpokládám, že řešení v cyklu bude jiné, proto bych se chtěl poradit s vámi. |
||
Stano Profil |
#2 · Zasláno: 4. 5. 2011, 18:43:16 · Upravil/a: Stano
$j = 0; for ($i = 0, $i < $delka; $i++){ echo chr(ord($str[$i]) + $cislo[$j++]); if($j == 2) $j = 0; } |
||
Keeehi Profil |
#3 · Zasláno: 4. 5. 2011, 18:51:47 · Upravil/a: Keeehi
krystof:
A že se Vám ze "Z" na první pozici stane "]" Vám nevadí? $cislo = array(3,9,6); $str = "Moje oblibena pisnicka."; $str = strtoupper($str); echo $str."<br>\n"; for ($i = 0, $ii = 0; $i < strlen($str); $i++) { if(ord($str[$i])>=65 and ord($str[$i])<=90) echo chr((ord($str[$i])-65+$cislo[$ii++%count($cislo)])%26+65); else echo $str[$i]; } |
||
krystof Profil * |
#4 · Zasláno: 4. 5. 2011, 18:56:48
Keeehi:
ano vadí, už jsem sprovoznil to kolovaní jak mi zde poslal pan Stano |
||
Stano Profil |
#5 · Zasláno: 4. 5. 2011, 19:06:15
krystof:
hehe Pán to sa mi páči. $alphabet = array('a', 'b', 'c', ..... 'x', 'y', 'z'); $j = 0; for ($i = 0, $i < $delka; $i++){ $position = array_search($str[$i], $alphabet) + $cislo[$j++]; if($position > count($alphabet)-1) $position = $position - count($alphabet)-1; echo $alphabet[$position]; if($j == strlen($cislo)-1) $j = 0; } |
||
Časová prodleva: 13 let
|
0