tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
515
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Aug 2002
    Beiträge
    419
    Moinsen,

    wollte einen String nach PHP Anfangs und endtags durchsuchen .... .
    Diese wollte ich dann später per Eval funktion ausgeben.... nun meine Frage, wie
    ist die Reguläre Expression für <?php und ?> ? Habe schon fast eine halbe Stunde mit dem RegEx Trainer rumprobiert und es nicht rausgefunden ....

    HELP
     

  2. #2
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Ich denke so:
    Code :
    1
    
    /<\?php(.*)\?>/ims
    Ob die Fragezeichen escaped werden müssen oder nicht, kann ich nicht definitiv sagen.
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  3. #3
    Registriert seit
    Aug 2002
    Beiträge
    419
    Dann sagt der RegEx code, das es nicht geht , bzw. No Match

    EDIT:

    Nachdem ich die Backslashes vorne und hinten weggenommen habe, geht es thx
    Geändert von Muffinmampfer (01.06.04 um 21:02 Uhr)
     

  4. #4
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Wie gesagt, ich war mir nicht sicher
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  5. #5
    Registriert seit
    Aug 2002
    Beiträge
    419
    jetzt muss ich nur noch wieder meinen Template Parser umbasteln , dann müsste es klappen
     

  6. #6
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Es gibt natürlich noch die Möglichkeit die Ausgabepuffer zu aktivieren, die PHP-Datei zu includen, den generierten HTML-Code über ob_get_contents() abzurufen und die Ausgabepufferung wieder zu deaktivieren.

    snuu
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  7. #7
    Registriert seit
    Aug 2002
    Beiträge
    419
    ok, jetzt nochma ne Verständis Frage:

    {(.*?)}

    müsste eigentlich alles ausgeben was zwischen den Klammern steht oder?
    weil irgendwie muss ich nach der Ausgabe:
    preg_match_all("{(.*?)}", $to_parse, $new_pars);

    immer hinschreiben
    echo $new_pars[1][0];
    und danach hat erst

    $new_pars[1][3] wieder nen wert ....
     

  8. #8
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Die geschweiften Klammern geben im Regulären Ausdruck Zeichenklassen an. Also müssten sie escaped werden. Wie gesagt, es gibt auch noch eine andere Möglichkeit:
    PHP-Code:
    ob_end_flush();
    ob_start();
    include(
    'datei.php');
    $dateiinhalt ob_get_contents();
    ob_end_clean(); 
    snuu
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  9. #9
    Registriert seit
    Aug 2002
    Beiträge
    419
    Moinsen,

    so da bin ich nochmal

    habe hier die Template Datei:
    PHP-Code:
    {
    smalltable();
    echo 
    "test";
    bodytable();


    Dies soll mit der Template funktion ausgegeben werden.

    Dummerweise ist damit meine Template Funktion überlastet.

    Eigentlich sollen nur die PHP Anweisungen ausgeführt werden und damit 1 Tabelle erstellt werden und Test ausgeben werden und dann noch eine 1 Tabelle ausgegeben werden .

    Das macht er aber nicht, auch nciht mit eval() .
    Dummerweise liest er danach auch nicht mehr die normalen Template Anweisungen aus ... bin am Verzweifeln...
     

  10. #10
    Registriert seit
    Aug 2002
    Beiträge
    419
    So, habe es jetzt hingekriegt, allerding klappt es nur wenn alle PHP Anweisungen in einer Zeile stehen und selbst dann noch nicht richtig ...

    was ist der Unterschied von:

    preg_match_all("/{(.*?)}/", $to_parse, $parse_vars); ( keine Ergebnisse )
    und

    preg_match_all("{(.*?)}", $to_parse, $parse_vars); ( gibt Ergebnisse aus .... )


    ich werd noch Wahnsinnig *g*

    EDIT:

    und was heisst:


    Warning: ereg_replace(): REG_BADRPT: repetition-operator operand invalid in F:\htdocs\optima\includes\template.php on line 27

    bei:
    PHP-Code:
        preg_match_all("<\?php(.*)\?>"$to_parse$parse2); 
        for(
    $z=0$z count($parse2[1]); $z++) 
            {
                    
    $replace             =     eval($parse2[1][$z]);

                    
    $to_parse_new            =     ereg_replace($parse2[0][$z], $replace$to_parse);
            } 
    Geändert von Muffinmampfer (02.06.04 um 00:22 Uhr)
     

Ähnliche Themen

  1. Mal gefragt
    Von Rainer_LB im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 25.01.10, 09:58
  2. Kenner von Typo3 & Flex gesucht
    Von Axxcell im Forum Stellenangebote (entgeltlich)
    Antworten: 0
    Letzter Beitrag: 21.05.08, 08:37
  3. Meinung gefragt
    Von Waldschrandi im Forum Bildbearbeitung & Illustration
    Antworten: 2
    Letzter Beitrag: 17.05.07, 20:55
  4. suche Virtools kenner
    Von lylila im Forum 3D Studio Max
    Antworten: 3
    Letzter Beitrag: 28.04.05, 12:13
  5. Parsing: RegEx mit '&', RegEx-Kenner gefragt
    Von Kachelator im Forum PHP
    Antworten: 8
    Letzter Beitrag: 21.04.04, 09:16