Tom: Hilfe bei einem Codier-skript

Beitrag lesen

Hello,

Hallo! Mein Code bis jetzt (ACHTUNG: Bin totaler Anfänger, also bitte nicht wundern):

[code lang=php]<?php

//Variablen
$text = $_REQUEST['codier-text'];
$coding = array($code);
$coding['A'] = "X";
$coding['B'] = "Y";
$coding['C'] = "Z";
$coding['D'] = "A";
$coding['E'] = "B";
$coding['F'] = "C";
$coding['G'] = "D";
$coding['H'] = "E";
$coding['I'] = "F";
$coding['J'] = "G";
$coding['K'] = "H";
$coding['L'] = "I";
$coding['M'] = "J";
$coding['N'] = "K";
$coding['O'] = "L";
$coding['P'] = "M";
$coding['Q'] = "N";
$coding['R'] = "O";
$coding['S'] = "P";
$coding['T'] = "Q";
$coding['U'] = "R";
$coding['V'] = "S";
$coding['W'] = "T";
$coding['X'] = "U";
$coding['Y'] = "V";
$coding['Z'] = "W";

//schau was drinsteht
$newtext = str_replace(?, $coding, $text);

Du meintest sicherlich

$newtext = str_replace(array_keys($coding), $coding, $text);

Aber das dürfte für Deinen Anwendungsfall in die Hose gehen, da str_replace() quasi-rekursiv arbeitet. Es arbeitet für jede vorgegebene Ersetzung immer den ganzen String durch. Das bedeutet aber, dass Ersetzungen, die am Anfang vorgenommen werden, nachher nicht nochmal in der Suchliste vorkommen dürfen, sonst werden sie nochmal ersetzt, usw.

Du brauchst nur einen durchlauf für die Ersetzung

$len = strlen($text);

for ($i = 0; $ < $len; $i++)
    {
        $text[$i] = $coding[$text[$i]];
    }

So wird jedes Zeichen genau einmal ersetzt gegen seinen Platzhalter aus dem Array;

Dieses Verschleierungsverfahren hat natürlich keine wesentliche Sicherheit.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de