• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

abc... zu zyx... codieren

  • Ersteller Ersteller ohrflieger
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
O

ohrflieger

Guest
Hallo,
ich bastle gerade an einer Funktion, um in Strings das Abc umzustellen. Das heißt, a wird zu z, b wird zu y usw.
Macht man das mit solch einer Funktion
PHP:
$abc = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
$zyx = array("z","y","x","w","v","u","t","s","r","q","p","o","n","m","l","k","j","i","h","g","f","e","d","c","b","a");
$c2 = str_replace($abc,$zyx,$c);
funktioniert es nicht, da ja alles, was codiert wurde, gleich wieder entcodiert wird. "abc" wird da erst zu "zxy", das wird danach aber gleich wieder zurückcodiert zu "abc". Gibt es eine Funktion, die jedes Zeichen nur einmal verändert? Ich glaube, dass es eine gibt, konnte sie aber nicht finden.

Danke im voraus!
 
Danke, strtr war, was ich gesucht habe!
range ist auch eine nette Funktion ;) kann man in dem Zusammenhang auch gut nutzen, um Code abzukürzen
 
Den Code abzukürzen ist zwar schön aber in einem solchen fall eher nachteilig.

range wird nur benutzt, wenn du den anfangs oder endpunkt nicht genau kennst.
Wenn du ihn bzw. sie kennst dann solltest du lieber einen array von hand schreiben da dieses wesentlich schneller ist als sich den array erst erstellen zu lassen.

//Edit: und bei strtr brauchst du ja eh keine arrays

PHP:
strtr($var, 'abcdefghijklmnopqrstuvwxyzäöüß', 'ßöüäzyxwvutsrqponmlkjihgfedcba');
 
Der Gemeine Programmierer ist Schreibfaul in solch einer Angelegehheit, ich würde folgendes machen:


PHP:
$arr = range('a', 'z');
echo implode('', $arr);
array_reverse($arr);
echo implode('', $arr);

Die Ausgabe kann dann als Variable verwendet werden.



Klar, es würde schneller gehen, wenn man die Zeichenketten von Hand eintippt, aber das ist zu ermüdend :D
 
müsste man nicht einen array erstellen ?

ich mein, man will nicht abcdefg mit zyu.s.w. tauschen sondern a mit z ?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben