Mailinglisten-Archive |
Hi Sven, Zitat von Sven <phpbar at koalashome.de>: [...] > Nun habe ich aber das Problem, dass es manchmal auch > Kommentarverschachtellungen gibt. > z.B.: > > --- cut --- schnipp --- schnapp --- > Ich bin ein Text. > {* und ich ein Kommentar im Text {* Ich bin ein Kommentar im Kommentar *} *} > Und hier ist noch eine Textzeile. > --- cut --- schnipp --- schnapp --- > > Aber nun bleibt nach dem Funktionsdurchlauf noch der letzte > Kommentarbegrenzer '*}' stehen. > Irgendwie müsste ich also die Funktion so abändern, dass erst nachgesehen > wird, ob es im Kommentar noch einen weiteren Kommentar gibt, und dann erst > der innerste Kommentar gelöscht wird und dann der äusserste. > > Mir fehlt hier ein Ansatz, wie ich das mit dem Vorhandensein von inneren > Kommentaren überprüfen könnte. > Hat da jemand einen Denkanstoß für mich? 1. Ausgehend von den gefundenen Positionen fuer "{*" (im folgenden Position A genannt) und "*}" (im folgenden Position B genannt) pruefst Du, ob zwischen den beiden Positionen weitere "{*" vorkommen. Dies kannst Du z.B. in einer Schleife machen, die solange durchlaeuft, bis die gefundene Position X von "{*" hinter der Position B liegt. 2. Nun weisst Du, wieviele Kommentare zwischen Position A und B noch geoeffnet werden. Entsprechend viele Schritte gehst Du jetzt hinter Position B weiter und suchst die Position des "*}", welches das "{*" auf Position A abschliesst (im folgenden Position C genannt). 3. Nun schneidest Du alles zwischen Position A und C einschliesslich der Kommentarzeichen heraus. :-) Viele Gruesse Lutz
php::bar PHP Wiki - Listenarchive