Вот этот код выведет сначала закодированную, потом раскодированную строку:
<?php
function decode_char($c)
{
$a1 = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "W", "G", "X", "M", "H", "R", "U", "Z", "I", "D", "=", "N", "Q", "V", "B", "L");
$a2 = array("b", "z", "a", "c", "l", "m", "e", "p", "s", "J", "x", "d", "f", "t", "i", "o", "Y", "k", "n", "g", "r", "y", "T", "w", "u", "v");
$result = $c;
for($j = 0; $j < count($a1); $j++) {
if ($c == $a1[$j][0]) {
$result = $a2[$j][0];
break;
}
if ($c == $a2[$j][0]) {
$result = $a1[$j][0];
break;
}
}
return $result;
}
function encode_str($s)
{
$s = base64_encode($s);
$result = '';
for($i = 0; $i < strlen($s); $i++) {
$result .= decode_char($s[$i]);
}
return $result;
}
function decode_str($s)
{
$r = '';
for ($i = 0; $i < strlen($s); $i++){
$r .= decode_char($s[$i]);
}
$r = base64_decode($r);
return $r;
}
$a = encode_str('test');
echo($a."\n");
echo(decode_str($a)."\n");