Aktuell nutze ich:
In manchen Regeln brauche ich nun den e-Modifikator, den ich aber aus Sicherheitsgründen nicht einsetzen möchte und stattdessen auf preg_replace_callback() zurückgreifen würde:
Wie ermittel ich nun in replace_with() welcher Search Pattern gerade greift, damit ich entsprechend replacen kann?
EDIT:
Gibt es eine NOT-Regel, die im Ergebnis übergeben wird? Dann könnte ich sowas machen wie '#(!ruleID1)(search1)#' und im Ergebnis in $matches[1] ein Switch anwenden. Kommentare wie z.B. bei sowas '/(?#ruleID1)(search1)/' werden leider auch nicht im Ergebnis übergeben
Code:
$text = preg_replace(array('#search1#', '#search2#'), array('#replace1#', '#replace2#'), $text);
Code:
function replace_with($m) { $array = array('#replace1#', '#replace2#'); } $text = preg_replace_callback(array('#search1#', '#search2#'), 'replace_with', $text);
EDIT:
Gibt es eine NOT-Regel, die im Ergebnis übergeben wird? Dann könnte ich sowas machen wie '#(!ruleID1)(search1)#' und im Ergebnis in $matches[1] ein Switch anwenden. Kommentare wie z.B. bei sowas '/(?#ruleID1)(search1)/' werden leider auch nicht im Ergebnis übergeben