[REGEX] mehrere [php] - tags

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

  • [REGEX] mehrere [php] - tags

    Moin jungs & Mädel's ,-)

    Ich kenne mich mit regulären ausdrücken usw. garnicht aus, ich mag sie nimmer sehen, nur hab ich zZ ein 'kleines' Problem was ich nicht einfach bei seite schieben kann, ich hoffe ihr könnt mir helfen.

    Zuerst der Code

    PHP-Code:
    $str eregi_replace("\[php\]""<div class=php><b>Code:</b><br />[php]"$str); 
            
    $str eregi_replace("\[\/php\]"
    </div>", $str);

    preg_match_all( "/\[php\]((?s).+)\[\/php\]/Ui" , $str , $matches , PREG_SET_ORDER );
    foreach ( $matches as $key => $value )
    {
    $matches[ $key ][ 1 ] = html_entity_decode( $matches[ $key ][ 1 ] );
    $matches[ $key ][ 1 ] = @highlight_string( $matches[ $key ][ 1 ] , true);
    $str = preg_replace( "/\[php\]((?s).+)\[\/php\]/Ui" , $matches[ $key ][ 1 ] , $str );
    }
    [/PHP]

    Die Funktion habe ich mir mal zusammengesucht und bissle verändert, aber eiglt. nix in der Funktion selber.
    Mein Problem besteht wie man schon den Topic entnehmen kann das wenn man z.B in einen Post 2 PHP-Tags macht also 2x Code pasten will das der im 2. Code-Tag den Code vom 1. hat, versteht ihr? Ich hoffe

    Vielen dank!

    /edit, ähm der php-tag spinnt

    *klick mich ich bin eine nopaste url *

    /edit2, wie ich auch grad mitkriege, verschacheln kann man die auch nit, also ein php-tag in einem anderen, grml
    Zuletzt geändert von laser; 09.06.2005, 01:50.

  • #2
    Ich verstehe nicht ganz was Du willst. Schreiben bitte mal ohne was Du hast, und was daraus werden soll.
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      es scheint daran zu liegen, daß sinnloserweise preg_match_all und preg_replace kombiniert werden ...
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        das problem liegt beim preg_replace(), weil das alle matches ersetzt.
        wenn also zwei matches auftreten und du die mit preg_replace so bearbeitest, dass nachher keine matches mehr auftreten, dann muss logischer Weise in (ex) tag2 auch der code von tag1 stehen.

        Kommentar


        • #5
          das ist falsch. zumindest ists nicht uneingeschränkt richtig.

          selbstverständlich ist preg_replace an dieser stelle richtig, man muß nur dann auch mit dem richtigen ersetzen soll heißen: backreference verwenden.
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            was genau ist falsch?

            edit:

            ok, verstanden wie du meinst.

            Mit backreferences bekommst aber imho das highlighting nicht hin, sondern es werden nur die Tags entfernt.
            Zuletzt geändert von ankh; 09.06.2005, 09:50.

            Kommentar


            • #7
              Mit backreferences bekommst aber imho das highlighting nicht hin, sondern es werden nur die Tags entfernt.
              wieso das denn? was hat das überhaupt miteinander zu tun? also, wieso sollte man denn das highlighting nicht hinbekommen? komme gerade nicht ganz mit?
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                hab die Backreference Bemerkung folgendermaßen verstanden:

                PHP-Code:
                $str preg_replace"/\\[php\\]((?s).+)\[\\/php\\]/Ui" , $1$str ); 
                ansonsten fiele mir kein sinnvoller Einsatz von BR ein...

                Kommentar


                • #9
                  ja, genau ...

                  drumrum jetzt noch ein div, ne überschrift 'php', und dann noch den inhalt der backref highlighten ...

                  zu einem ähnlichen thema habe ich vor längerem mal was geschrieben, recht konfus ... ich wollte es schon länger mal überarbeiten ...

                  http://regexp-evaluator.de/tutorial-...html#modifiere
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    ah!

                    modifiers sind ne tolle sache

                    Kommentar

                    Lädt...
                    X