kompliziertes callback was replace verhindern soll...
kelo
- php
Hallo,
zuerst der Hinweis, die ist ein gestelltes Beispiel, zur besseren Verständlichkeit.
$usereingabe=usereingaben eben
$zahl=array(1,2,3,4,5);
$folgezahl=array(2,3,4,5,6);
$anfang='::';
$ende='::';
nun soll mit preg_replace anfang und ende umgewandelt werden, aber nur wenn dazwischen keine der zahlen oder folgezahlen steht, oder falls eine der zahlen darin steht dann nur, wenn irgendwo DANACH innerhalb des anfang und endes auch die folgezahl steht.
also wenn der user z.B. flgendes eingibt:
abcdefg:: 1 2 4 5 ::llll
soll anfang und ende umgewandelt werden.
gibt der user aber folgendes ein:
abcdefg:: 1 ::llll
soll nicht ummgewandelt werden, da die Folgezahl zu 1 fehlt.
Mein ansatz:
preg_replace_callback('/(?:$anfang)(.+?)(?::$ende:)/s','check',$usereingabe);
function check ($string)
{
$check='ok';
for($i=0;$i<=5;$i++) {
if(!strstr($string,$zahl[$i])&&!strstr($string,$folgezahl[$i])) {
$i=6;
$check='bad';
}
}
}
Doch wie kann ich jetzt verhindern, dass wenn $check='bad' dass anfang und ende nich ersetzt werden? oder dass sie überhaupt ersetzt werden? und wie kann ich variablen in die preg funktion einbauen?
gruß