if (preg_match_all("#\OpenUI[^ ]* \" .$element. "(/(.*?):|:)(.*?)\CloseUI[^ ]*: \" .$element. "#s", $teile[1], $contents)){
Dein Pattern ist reichlich wirr
z.B. das subpattern "[^ ]* \*"
Lerne bitte solche Dinge wie [ ]+
oder wohl angemessener \s+
Das alles brachte nichts. Was micht wundert ist auch die Tatsache das nur bis zum nächsten *CloseUI gesucht wird und nicht wie gedacht *CloseUI: *NIS66OpMsg
Solange $element == '' wundert das auch nicht.
Ich weiss PHP und REX sind eine unheilige Allianz, geprägt von unlesbaren Bandwürmern.
Hier eine Perl REX
my $element = 'example';
if($element){
my $start = qr/ ^ \*OpenUI \s+ \Q $element \E /x;
my $end = qr/ \*CloseUI \s+ \Q $element \E /x;
$test =~ /$start \s+ (.+?) \s+ $end/xs
and subparse($element, $1);
}
Was ich grundsätzlich tue:
Ich definiere Start und Endpattern gesondert
Beachte \Q ... \E, welches Spezielle Zeichen in $element behandelt.
Das solltest du auch in PHP analog beachten.
//x erlaubt mir, den String etwas zu strukturieren.
mfg Beat
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische