geeignetere funktion als spliti zum auswerten von tags gesucht

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

  • geeignetere funktion als spliti zum auswerten von tags gesucht

    Morgen.

    Ich hab mir eine kleine Funktion zusammnengeschustert mit der ich eigene Tags in Templates einfügen kann und diesen dann auch auswerten kann.

    PHP-Code:
        $nexval "    {B}Start{/B}Hallo
                        {B}TEST{/B}Ollum
                        {B}Nochatest{/B}"
    ;

        
    $stuecke spliti ("{B\}"$nexval );
        
    $size_array count($stuecke);
        
    $nexval $stuecke[0] ;

        for ( 
    $nam $nam $size_array $nam ++  ){
            
    $parts spliti ("{\/B\}"$stuecke[$nam] );
            
    $nexval .= "<b>".$parts[0]."</b>";
            
    $nexval .= $parts[1];
        }

        echo 
    $nexval
    Auf Dauer und mit einigen vielen Tags hab ich die Vermutung dass das ein wenig Performacelastig werden könnte.

    ( Vor allem da spliti wohl auf die posixengine ausetzt die angeblich 200xmal langsamer wäre als die perl komaptible bei regulären ausdrücken)

    Kennt jemand eine elegantere , weniger performancelastige Methode mit der ich das machen kann, bei der ich aber den Wert zwischen den Tags als Variable in die Finger bekomme, da ich den Teilweise noch weiter auswerten können muss.

    Aleine das ersetzen der Tags wäre kein Problem, wie gesagt ich muss den Wert zwischen den Tags as Variable zum auswerten bekommen können, sonst könnte ich das auch mit str_replace() regeln 5 anderen Funktionen regeln.

    Gruß Sono

  • #2
    ( Vor allem da spliti wohl auf die posixengine ausetzt die angeblich 200xmal langsamer wäre als die perl komaptible bei regulären ausdrücken
    Na, du nennst die Lösung doch schon selber

    Kommentar


    • #3
      Ok von den Funktionen her wäre das schonmal "preg_split()" wenn mich nicht alles täuscht,

      aber kann ich um die foreach durch verbessern des Regulären Ausdrucks kommen, oder passt das schon so und ich muss eben nur die Funktion austauschen, da alles andere auch nicht schneller laufen würde.

      Gruß Sono

      Kommentar


      • #4
        Deine Tags unterscheiden sich außer von der Form in keinster Weise vom BB-Code. Informiere dich mal in dieser richtung... Da gibts haufenweise fertige lösungen.

        Kommentar


        • #5
          Ich hab schon in ein paar BB Code Beispiele reingeschaut, aber alles was ich gefunden habe hat sich bis jetzt darauf beschränkt die Tags durch HTML zu ersetzen.

          Ich schau aber nochmal ob ich ein besseres Beispiel finde wo einer nicht nur die Tags ersetzt sondern der Inhalt der Tags auswertet.

          Es gibt mämlich auch Tags die So Aussehen :
          {email}hono@lulu.haw|Ich bin das Subjekt|Ich der Body|Ich der Titel{/email}

          Sollte klar sein was hier passieren soll / wird, und da bin ich mit dem was ich gefunden habe nicht weit gekommen.

          Ok /me geht dann nochmal mal ne runde googln.

          Kommentar


          • #6
            es geht dir ja eigentlich nur ums preg_match.

            Ersetzen willst du ja nichts.

            Also reicht preg_match_all plus ne passende regex.

            Kommentar


            • #7
              Hm, es soll in manchen Fällen gerade doch ersetzt werden:

              Dieses Beispiel:
              {email}hono@lulu.haw|Ich bin das Subjekt|Ich der Body|Ich der Titel{/email}

              Siehtl nach dem Durchlauf ca so aus:

              <a href:="mailto:hono@lulu.haw?subject=Ich bin das Subjekt&body=Ich der Body&titel=Ich der Titel">hono@lulu.haw</a>

              Deshalb brauch ich auch den "Wert" zwischen den Tags in ner Variable, so dass ich ihn manipulieren kann.

              Ich hab jetzt noch nach BB Code gesucht, aber entweder waren die Scripte so riesig dass ich ein paar Stunden bräuchte bis ich da das finde was ich suche, oder so klein dass das was ich wollte nicht dabei war.

              Ich hab jetzt aber schonmal auf preg_split() umgeschrieben und das ganze geht schon ein wenig sehr viel flotter.

              Gruß Sono

              Kommentar


              • #8
                naja, dann halt preg_replace()

                Kommentar


                • #9
                  naja, dann halt preg_replace()
                  Warum war mir diese Antwort irgendwie schon klar? gg.

                  Ich grab mich gerade etwas tiefer in Reguläre Ausdrücke, mal schaun ob ichs dann auch mal schaffe das ganze ohne Schleifen auswerten zu lassen.

                  Aber das ist am Anfang schon irgendwie harter Tobak.

                  Das Prinzip ist ja relativ simpel, aber bis man genau das hat was man will ist dann doch schon nicht mehr so simpel wie man das eigentlich dachte.

                  Danke für deine Zeit und Hielfe,

                  Gruß Dominik

                  Kommentar

                  Lädt...
                  X