PHP 'Geheimschrift'

Habe mit meinem Freund eine Geheimschrift „entwickelt“, ist relativ simpel, aber funktioniert gut!

Aus „A“ wird „Z“, aus „B“ wird „Y“,…
Umlaute (ä,ö,ü) oder „ß“ bleiben!

Jetzt möchte ich ein php-script schreiben, welches automatisch die Buchstaben vertauscht!

Mein Problem: Wenn ich mit „str_replace“ arbeite und die ganzen „arrays“ eingebe, wird aus „A“ immer wieder „A“!

Wenn ich die Befehle einzeln hätte, also so…:

$text = $_POST[‚translate‘];
$text1 = ereg_replace(„a“, „z“, $text);
$text1 = ereg_replace(„b“, „y“, $text1);
$text1 = ereg_replace(„c“, „x“, $text1);

…ist das logisch, da ja am Ende wieder „z“ zu „a“ wird aber wenn ich alle arrays in einen Befehl packe, müsste das doch gehen…:

$text = $_POST[‚text‘];
$text1 = str_replace(array(‚a‘,‚b‘,‚c‘,…),array(‚z‘,‚y‘,‚x‘,…),$text);

…und aus „A“ wird „Z“!

PS: Ich weiß, dass „A“ und „a“ nicht das gleiche ist, aber ich habe in dem Script beides, Groß und Klein!!

Hallo

Habe mit meinem Freund eine Geheimschrift „entwickelt“, ist
relativ simpel, aber funktioniert gut!
Aus „A“ wird „Z“, aus „B“ wird „Y“,…
Umlaute (ä,ö,ü) oder „ß“ bleiben!

LOL

Jetzt möchte ich ein php-script schreiben, welches automatisch
die Buchstaben vertauscht!
Mein Problem: Wenn ich mit „str_replace“ arbeite und die
ganzen „arrays“ eingebe, wird aus „A“ immer wieder „A“!
Wenn ich die Befehle einzeln hätte, also so…:
$text = $_POST[‚translate‘];
$text1 = ereg_replace(„a“, „z“, $text);
$text1 = ereg_replace(„b“, „y“, $text1);
$text1 = ereg_replace(„c“, „x“, $text1);
…ist das logisch, da ja am Ende wieder „z“ zu „a“ wird aber
wenn ich alle arrays in einen Befehl packe, müsste das doch
gehen…:
$text = $_POST[‚text‘];
$text1 =
str_replace(array(‚a‘,‚b‘,‚c‘,…),array(‚z‘,‚y‘,‚x‘,…),$text);
…und aus „A“ wird „Z“!
PS: Ich weiß, dass „A“ und „a“ nicht das gleiche ist, aber ich
habe in dem Script beides, Groß und Klein!!

OK, eine einfache Lösung wäre einfach die
„Berechnung“ des neuen Buchstabens beim
Ver-/Entschluesseln, also z.B.:

# Schluesselfunktion
function textgeheim($m) {
 $a = ord(ctype\_upper($m[0])?'A':'a');
 $z = ord(ctype\_upper($m[0])?'Z':'z');
 return chr($z - ord($m[0]) + $a);
}

# verschluesseln
$text = preg\_replace\_callback('/[A-Za-z]/', 'textgeheim', $text);
echo $text;
# entschluesseln
$text = preg\_replace\_callback('/[A-Za-z]/', 'textgeheim', $text);
echo $text;

Viele Grüße

CMb

Vielen, Vielen Dank!
Klappt einwandfrei!
Danke, Danke, Danke!