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??
- gibt's da vielleicht mal eine vernünftige Problembeschreibung?
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; }