Hallo Matthias,
$output = preg_replace ("/<ERRORMESSAGE>(.*?)</ERRORMESSAGE>/", "", $output);
aber das funktioniert ebenso wenig. Davon abgesehen, mit (.*?) bekommt man leider nicht den und den Carriage Return (\r) => das garnichts gematched wird.
Hmmm, klar..... der m-Modifier fehlt:
$output = preg_replace ("/<ERRORMESSAGE>(.*?)</ERRORMESSAGE>/m", "", $output);
Sonst geht das nicht über mehrere Zeilen. Hatte ich vergessen.
"/(<ERRORMESSAGE([\w,\W]*)</ERRORMESSAGE>)?/"
"/(<ERRORMESSAGE([\w,\W]*)</ERRORMESSAGE>){1}/"
Du hast das falsch verstanden; richtig wäre:
"/<ERRORMESSAGE([\w,\W]*?)</ERRORMESSAGE>/"
Das ?-Zeichen hat zwei Bedeutungen: Direkt nach einem Zeichen oder Klammer-Ausdruck meint es, dass dieses Zeichen oder dieser Klammer-Ausdruck keinmal oder einmal vorkommen dürfen. Wenn es jedoch hinter einem * oder + steht, dann modifiziert es * oder +, damit diese nicht gierig sind.
Viele Grüße,
Christian
Glaube niemals dem Gelabber der Forums-Antworten. Das sind doch Minderheiten-Diskriminierer, Sexisten, Psychisch Kranke und Depressive.
Ja auch Rassisten und ähnliche Sozialrowdies befinden sich da drunter. - </archiv/2003/8/54855/#m305505>