RegEx-> jedes n-te Zeichen austauschen

tach community,

fuer ein verschluesselungsscript muss ich mich mit regEx rumschlagen… und das ist meine achillesferse…

wenn mir jemand das snippet mal eben quick’n’dirty zur verfuegung stellen koennte… waere das toll…

die aufgabe :

$n = 3;
$str = „ich bin eine RegExNiete“;

jedes n-te zeichen soll durch einen zufaelligen buchstaben ersetzt werden.

somit waere result dann zum beispiel:
$result= „icXh bXin XeinXe ReXgExXNieXte“;

und dann natuerlich zurueck…
jedes n-Te Zeichen wieder loeschen…

kann das jemand ?

danke gruss

PixelKoenig

tach community,

fuer ein verschluesselungsscript

du meisnt eher „eine kleine verschleierung - nix ernsthaftes“

die aufgabe :

$n = 3;
$str = „ich bin eine RegExNiete“;

jedes n-te zeichen soll durch einen zufaelligen buchstaben
ersetzt werden.

somit waere result dann zum beispiel:
$result= „icXh bXin XeinXe ReXgExXNieXte“;

und dann natuerlich zurueck…
jedes n-Te Zeichen wieder loeschen…

deine aufgabe passt nciht zum beispieldatum - du hast nciht ersetzt, sondern hinzugefuegt. ich habe mich mal an das beispiel gehalten:

<?php function addrandomchar($matches)<br /> {
 return $matches[1].chr( 65+mt\_rand(0,25) );
 }


$c = "ich bin eine regexp niete";
$e = preg\_replace\_callback("/(.{3})/","addrandomchar",$c); 
$c1 = preg\_replace("/(.{3})./","\\1",$e);

print "\n$c\n$e\n$c1";

?\>

Beispiel: http://mundauge.de/_verwaltung/test.php

Zeichenkette: " maxlength=„30“>

12345
Zeichen: " maxlength=„1“>

<?php $zeichen = $_POST["zeichen"];
$n = $\_POST["n"]; $zeichenkette = $\_POST["zeichenkette"]; echo "Zeichenkette: ".$zeichenkette.""; // kodieren $suchmuster = "/(.{".$n."})(.{0})/"; $ersetzung = '${1}'.$zeichen; $coded\_zeichenkette = preg\_replace($suchmuster, $ersetzung, $zeichenkette); echo "kodierte Zeichenkette: ".$coded\_zeichenkette.""; // dekodieren $suchmuster = "/(.{".$n."})(X{1})/"; $ersetzung = '${1}'.""; $decoded\_zeichenkette = preg\_replace($suchmuster, $ersetzung, $coded\_zeichenkette); echo "dedierte Zeichenkette: ".$decoded\_zeichenkette.""; ?\> > [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]