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