phpbar.de logo

Mailinglisten-Archive

[php] Zeichen zwischen Begrenzern aus Text entfernen

[php] Zeichen zwischen Begrenzern aus Text entfernen

Gloss Mathias Mathias.Gloss at start.de
Mit Okt 22 14:20:54 CEST 2003


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