phpbar.de logo

Mailinglisten-Archive

[php] Zeichen zwischen Begrenzern aus Text entfernen

[php] Zeichen zwischen Begrenzern aus Text entfernen

Lutz Zetzsche php at sea-rescue.de
Mit Okt 22 12:48:08 CEST 2003


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