hallo zusammen,
ich lese eine datei ein, in der irgendwo der ausdruck
<!--SAO:IF{jajaja}-->
und irgendwo anders der ausdruck
<!--SAO:ENDIF{jajaja}-->
steht.
jetzt pruefe ich im script die variable "jajaja" und loesche bei leerem inhalt den block zwischen innerhalb der IF-bedingung (inklusive IF-tags). wenn die variable einen wert hat, werden nur die IF-tags geloescht.
das geht im moment bei jeweils einer(!) IF-abfrage pro variable. aber ich brauche die moeglichkeit mehrerer abfragen und auch geschachtelter abfragen. beispiel:
<!--SAO:IF{var1}-->
blah blah
<!--SAO:IF{var2}-->
blah blah
<!--SAO:ENDIF{var2}-->
<!--SAO:IF{var1}-->
blah blah
<!--SAO:ENDIF{var1}-->
blah
<!--SAO:ENDIF{var1}-->
wobei hier natuerlich einmal das ganze, einmal das var2-teil und einmal das innere var1-teil IF-bloecke sind.
mein code bisher (nicht lachen):
kann mir da irgendjemand weiterhelfen?
ich lese eine datei ein, in der irgendwo der ausdruck
<!--SAO:IF{jajaja}-->
und irgendwo anders der ausdruck
<!--SAO:ENDIF{jajaja}-->
steht.
jetzt pruefe ich im script die variable "jajaja" und loesche bei leerem inhalt den block zwischen innerhalb der IF-bedingung (inklusive IF-tags). wenn die variable einen wert hat, werden nur die IF-tags geloescht.
das geht im moment bei jeweils einer(!) IF-abfrage pro variable. aber ich brauche die moeglichkeit mehrerer abfragen und auch geschachtelter abfragen. beispiel:
<!--SAO:IF{var1}-->
blah blah
<!--SAO:IF{var2}-->
blah blah
<!--SAO:ENDIF{var2}-->
<!--SAO:IF{var1}-->
blah blah
<!--SAO:ENDIF{var1}-->
blah
<!--SAO:ENDIF{var1}-->
wobei hier natuerlich einmal das ganze, einmal das var2-teil und einmal das innere var1-teil IF-bloecke sind.
mein code bisher (nicht lachen):
Code:
// if-abfragen auswerten while (preg_match("/<!--SAO:IF{([a-zA-Z0-9_]+)}-->/",$seite,$match)) { $abfrage_start = <!--SAO: . "IF{" . $match[1] . "}" . -->; $abfrage_ende = <!--SAO: . "ENDIF{" . $match[1] . "}" . -->; $abfrage_hlp = "artikel_" . strtolower($match[1]); $abfrage_neu = $$abfrage_hlp; // wenn variable keinen inhalt if (!$abfrage_neu) { $seite = ereg_replace("$abfrage_start.*$abfrage_ende","",$seite); // wenn doch } else { $seite = ereg_replace($abfrage_start,"",$seite); $seite = ereg_replace($abfrage_ende,"",$seite); } }
Kommentar