wahsaga: preg_match_all: Unterschied zwischen PHP 4und 5??

Beitrag lesen

hi,

habe das Phänomen, dass ein mit preg_match_all angewendeter regulärer Ausdruck unter PHP4 prima funktioniert, unter PHP5 aber die Arbeit verweigert.

Was heisst funktionieren, und was Arbeit verweigern, sprich -

Gibt es da Unterschiede in den Versionen??

Hier der Ausdruck:
$regexp = '/{([^:(}]*)((.*?)))?}(.*){end(\1)}/is';

Soll sowas finden (und findet in PHP4 auch, aber nicht in PHP5 ;-)):
$string = '... {FUNCTION1 (vars)}beliebiger Text{ENDFUNCTION1} ...';

Und zwar so:
preg_match_all ($regexp, $string, match);

Wenn ich da vor's match noch ein $ setze, und mir dann $match mit print_r ausgeben lasse, erhalte ich unter 5.2.3 folgendes:

Array
(
    [0] => Array
        (
            [0] => {FUNCTION1 (vars)}beliebiger Text{ENDFUNCTION1}
        )

[1] => Array
        (
            [0] => FUNCTION1
        )

[2] => Array
        (
            [0] =>  (vars)
        )

[3] => Array
        (
            [0] =>  (vars
        )

[4] => Array
        (
            [0] => beliebiger Text
        )

[5] => Array
        (
            [0] => FUNCTION1
        )

)

gruß,
wahsaga

--
/voodoo.css:
#GeorgeWBush { position:absolute; bottom:-6ft; }