Ersetzungsalgorithmen fangen immer dort nach einer nächsten Übereinstimmung zu suchen, wo die vorherige endete. Denn anderenfalls würde so etwas wie str_replace('foo', 'foo', 'foo') zu einer Endlosschleife führen.
Da sich aber reguläre Ausdrücke sowieso nicht zum Verarbeiten von einer nicht-regulären Sprache wie HTML eignet, ist ein Parser sinnvoller, der sich die einzelnen öffnenden und schließenden Tags merkt und zusammengehörige Paare erkennt. Damit kannst du dann sogar Syntaxfehler aufspüren und gegebenenfalls korrigieren.
__________________
Markus Wulftange
|