Mailinglisten-Archive |
Aloha,
> Von: Sven[SMTP:phpbar at koalashome.de]
>
> Ich habe hier Texte (Dateien) die mit Kommentaren versehen sind.
> Ein Beispiel:
>
> --- cut --- schnipp --- schnapp ---
> Ich bin ein Text.
> {* und ich ein Kommentar im Text *}
> Und hier ist noch eine Textzeile.
> --- cut --- schnipp --- schnapp ---
>
> Aus diesen Texten möchte ich nun vor der Ausgabe die Kommentare entfernen.
> Das gelingt mir mit dieser kleinen Funktion:
>
....
wie wärs denn mit sowas (ungetestet)
while ($str = preg_replace("/\{\*.*?\*\}/",'',$str){
echo ++$i .' '.$str; # die Zeile dient nur zum debuggen
}
sorgt dafür, daß das preg_replace so lange ausgeführt
wird, bis nichts mehr ersetzt wird. Entscheidend ist
in der Mitte das da:
.*?
Das ? sorgt dafür, daß so wenig wie möglich Zeichen
zwichen den {* und *} stehen dürfen, d.h. es werden
zuerst die kleinstmöglichsten Ersetzungen vorgenommen.
D.h. aus der Zeile
> {* und ich ein Kommentar im Text {* Ich bin ein Kommentar im Kommentar *}
> *}
sollte im ersten Durchlauf:
1 {* und ich ein Kommentar im Text *}
werden und im 2. Durchlauf:
2
und im 3. Durchlauf
3
wird nird nichts mehr gefunden --> fertig
Grüße, Mathias
php::bar PHP Wiki - Listenarchive