Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Regular Expression

  1. #1
    Meister(in)
    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Regular Expression

    Hallo,

    ich scheitere leider gerade an einer Regular Expression (auch mit Hilfe von Doku und irgendwelchen Testern). Wenn das also jemand im Schlaf beherrscht und grad Zeit hat:

    Folgendes soll gefunden werden:
    <-- MENU -->
    <-- MENU (0-9) -->
    also bspw. <!-- MENU 3 -->
    <-- MENU (0-9)-(0-9) --> also bspw. <!-- MENU 1-3 -->

    Vielen Dank schon mal!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Pion
    Gast

    Standard AW: Regular Expression

    Nur aus Neugierde, wird das eine TPL ENGINE?

    Ich würde es nicht mit Regulären ausdrücken machen sondern mit strpos etc, deswegen bin ich dir da jetzt keine Hilfe

    Aber wenn es sein muss so ähnlich geht es schon

    Code:
    $string = 'ddas<!-- MENU 1 -->asd <!-- MENU 2-3 -->dadasd';
    preg_match_all('/<!-- MENU (.*?) -->/s', $string, $matches) ;
    var_dump($matches);
    mfg
    Geändert von Pion (06.10.2010 um 19:01 Uhr)

  3. #3
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression

    Ja, wird so eine Art Template Engine aber wieso meinst du, dass strpos sich da besser anbietet als Regular Expressions?

    PHP-Code:
    preg_match_all('/<!-- MENU (.*?) -->/s'$string$matches); 
    Diese Expression würde aber nicht nur auf die drei Beispiele von mir passen.
    Außerdem hätte ich im Ergebniss, bei bspw. <!-- MENU 2-3 -->, nur den String "2-3" und nicht 2 und 3 getrennt.

    Naja, bin jetzt eh erstmal darauf angewiesen selber weiter zu probieren. :P
    Dank dirt, trotzdem!

  4. #4
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression

    Ja, wird so eine Art Template Engine aber wieso meinst du, dass strpos sich da besser anbietet als Regular Expressions?
    Einfach desdewegen, da Stringfunktionen in php bedeutend schneller sind als reguläre Ausdrücke.
    Wenn schon eine Templateengine, würde ich versuchen eine Lösung mit strpos/str_replace zu entwickeln.
    Das reicht dafür m.E. nach vollkommen aus.

  5. #5
    Pion
    Gast

    Standard AW: Regular Expression

    Mal abgesehen davon das PHP eine gute Template Engine ist und man sowas nicht braucht


    Kannst doch mit PHP sauber dann das verarbeiten
    Code:
    <?php
    
    function muh($muh) {
        if ($muh[1] == '1') {
            return 'muh menü 1';
        }
    //kannst auch mit strpos checken ob ein - vorhanden ist und je nachdem eben 2einbinden etc
        if ($muh[1] == '2-3') {
            return 'muh menü 2-3 oder muh include what else';
        }
    }
    
    $string = 'ddas<!-- MENU 1 -->asd <!-- MENU 2-3 -->dadasd';
    
    echo preg_replace_callback('/<!-- MENU (.*?) -->/s', 'muh', $string);
    ?>
    Geändert von Pion (07.10.2010 um 17:59 Uhr)

  6. #6
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression

    Zitat Zitat von jojo87 Beitrag anzeigen
    Einfach desdewegen, da Stringfunktionen in php bedeutend schneller sind als reguläre Ausdrücke.
    Wenn ich dafür aber 10 oder 20 mal irgendeine Stringfunktion verwenden muss um alle möglichen Fälle zu berücksichtigen, die ich auch mit einer Regular Expression abbilden kann, ist deine Argumentation auch hinfällig. Außerdem will ich keine was weiß ich wie riesigen Dateimengen durchforsten sondern ein einfaches HTML-Template. Es geht hier also eh nur um Millisekunden und dann wird das ganze auch noch gecached.

    Hier, für die, die es interessiert:
    PHP-Code:
    preg_match_all("/\<\!-- MENU (\d*-?\d*\s*)--\>/"$this->sBody$aMatches);
    for (
    $i 0$j count($aMatches[0]); $i $j$i++)
    {
        
    $this->aMenuAreas[$i]["placeholder"] = $aMatches[0][$i];
        
    $this->aMenuAreas[$i]["level"] = trim($aMatches[1][$i]);
        
    $this->aMenuAreas[$i]["items"] = array();

    HTML-Code:
    <body>
        <div class="container_16 page" id="container_16">
            <div class="grid_16 menu area">
                <!-- MENU 1 -->
            </div>
            <div class="grid_16 header area">
                <!-- MENU 2-3 -->
                <img src="/layout/simplegreen/img/header.jpg" />
                <!-- AREA 2 -->
            </div>
            <div class="grid_10 content area">
                <!-- MENU 4- -->
                <!-- AREA 3 -->
            </div>
            <div class="grid_6 rightcolumn area">
                <!-- AREA 4 -->
            </div>
            <div class="grid_16 footer area">
                <!-- AREA 5 -->
            </div>
            <div class="clear"></div>
        </div>
        <!-- CONTEXTMENU -->
    </body>
    Größer sind meine Templates dank CSS-Framework nicht...
    Es ist auch keine Template Engine, es werden einfach nur Bereiche in einem Template markiert die dann durch den eigentlichen Inhalt ersetzt werden. Nennts wie ihr wollt aber sicher kein Smarty.... :P

    Im Falle von <!-- MENU --> geb ich dem ganzen quasi nur noch mit welche Menüebene ausgegeben werden soll.
    <!-- MENU --> = alle
    <!-- MENU 1 --> = 1. Ebene
    <!-- MENU 2-4 --> = 2. - 4. Ebene
    <!-- MENU 3- --> = alle ab der 3. Ebene
    <!-- MENU -5 --> = alle bis zur 5.Ebene
    uswusf...

    Diese Flexibilität ist nunmal essentiell... auch wenn man selten mehr als 3 oder 4 Ebenen hat...
    da kommt ne regular expression halt besser, die ich mir inzwischen ja auch durch langes probieren erarbeitet habe! :P
    Geändert von FaFoo (07.10.2010 um 18:22 Uhr)

  7. #7
    Pion
    Gast

    Standard AW: Regular Expression

    <body> <div class="container_16 page" id="container_16"> <div class="grid_16 menu area"> <?php menu(1); ?>
    </div> <div class="grid_16 header area">
    <?php menu(2-3); ?>
    <img src="/layout/simplegreen/img/header.jpg" />
    <?php area(1); ?>
    </div>
    Was bringt deine Engine nochmal?

  8. #8
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression

    PHP-Code:
    function __construct($sName)
    {
        
    $this->sName $sName;
        
    $this->sHead file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/layout/" $this->sName "/tpl/head.html");
        
    $this->sBody file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/layout/" $this->sName "/tpl/body.html");

    Frage beantwortet? :P
    Es findet kein HTTP Request auf die Templates statt...

  9. #9
    Pion
    Gast

    Standard AW: Regular Expression

    Nein Frage nicht beantwortet, Frage verstanden?

    Was hat das nun mit HTTP Request zu tun?

    mfg

  10. #10
    Meister(in)
    Themenstarter

    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Regular Expression

    Der PHP Code wird nicht geparst...
    und cURL kann nicht verwendet werden.

    Die Templates werden halt in PHP per file_get_contents eingelesen und verarbeitet, also von einem Frontcontroller mit Inhalt befüllt.
    Geändert von FaFoo (07.10.2010 um 18:46 Uhr)

Ähnliche Themen

  1. <IMG Regular Expression
    Von 1234d1 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 12.02.2010, 13:52
  2. Regular Expression (abc-abc-abc.de) geht nicht :(
    Von Darkxor im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 07.12.2009, 13:37
  3. Regular Expression Links von href="" auslesen
    Von 1234d1 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 11.09.2009, 16:29
  4. Expression Web 2
    Von Alienx im Forum Computer - Internet Forum
    Antworten: 15
    Letzter Beitrag: 08.07.2009, 18:07
  5. regular expressions =/
    Von baloo im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 03.01.2005, 10:51

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •