Reguläre Ausdrücke

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Reguläre Ausdrücke

    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):

    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);
    	}
    }
    kann mir da irgendjemand weiterhelfen?

  • #2
    Problem behoben

    ok, das problem hat sich erledigt. ich habe mir den ganzen tag den kopf zerbrochen und bin letztendlich dahinter gestiegen. wenn es jemanden interessiert:

    - datei zeilenweise einlesen
    - ifs und endifs maskierten (nummern)
    - zeilen in seite schreiben

    - seite weiter bearbeiten (inhalte einfuellen etc)
    - if-abfragen auswerten, geht ja jetzt, weil sie eindeutige paare bilden

    das wars schon im groben. und funktioniert ;-)

    Kommentar

    Lädt...
    X