spezieller ereg_replace() gesucht

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

  • spezieller ereg_replace() gesucht

    Hallo Leute,

    ich prauche mal wieder Hilfe in Sachen RegEx.

    Ich möchte in einem Quellcode alle vorkommen von Link-Tags, die eine bestimmte Reiegnfolge haben umschreiben in eine andere.

    Also: <a target="_self" href="seite.php4">
    soll werden: <a href="seite.php4" target="_self">

    Ich habe es so probiert:
    $content = eregi_replace("<a target=\"(.*)\" href=\"(.*)\">", "<a href=\"//2\" target=\"//1\">", $content);

    Aber es funktioniert nicht, er scheint nichts zu finden, obwohl es aber einen solchen Link gibt.

    Wie muß denn mein ereg_replace() aussehen?

    Dank & Grüße,
    Andi

  • #2
    Okay, konnte mich in so fern selbst berichtigen, dass es nun so aussehen muß:

    $content = eregi_replace("<a target=\"(.*)\" href=\"(.*)\">", "<a href=\"\\2\" target=\"\\1\">", $content);

    Aber trotzdem wills nicht. Ich habe es auch schon so getestet:
    <a target=\"(?)\" href=\"(?)\">
    Mit dem Ergebnis dann mein String danach leer war.

    Was mach ich denn falsch?

    Grüße, Andi

    Kommentar


    • #3
      mach mal statt (.*) ein (.*?)
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Da ist auch mein ganzer String weg, wie wenn ich nur (?) mache.

        Versteh ich nicht. Ist von der Logik aber doch so richtig, oder?

        Kommentar


        • #5
          dann mache mal mit preg_replace()

          PHP-Code:
          $content preg_replace("!\<a target=\"(.*?)\" href=\"(.*?)\"\>!si""<a href=\"$2\" target=\"$1\">"$content); 
          und weil das forum manchmal \ verschluckt noch einmal als CODE

          Code:
          $content = preg_replace("!\<a target=\"(.*?)\" href=\"(.*?)\"\>!si", "<a href=\"$2\" target=\"$1\">", $content);
          ungetestet, sollte aber passen.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Das gibts doch nicht, der will nicht.

            Habe jetzt noch mal ein paar Abwandlunger probiert, aber der machts nicht.

            Ratlos!


            Thanx, Andi

            Kommentar


            • #7
              wieso??? klappt doch einwandfrei. habs jetzt noch mal getestet.

              PHP-Code:
              <?php

              $content 
              "<a target=\"_self\" href=\"seite.php4\">
              <a href=\"seite.php4\" target=\"_self\">"
              ;

              echo 
              "vorher:<pre>".htmlentities($content)."</pre>";

              $content preg_replace("!\<a target=\"(.*?)\" href=\"(.*?)\"\>!si""<a href=\"$2\" target=\"$1\">"$content);


              echo 
              "nachher:<pre>".htmlentities($content)."</pre>";

              ?>
              und als code

              Code:
              <?php
              
              $content = "<a target=\"_self\" href=\"seite.php4\">
              <a href=\"seite.php4\" target=\"_self\">";
              
              echo "vorher:<pre>".htmlentities($content)."</pre>";
              
              $content = preg_replace("!\<a target=\"(.*?)\" href=\"(.*?)\"\>!si", "<a href=\"$2\" target=\"$1\">", $content);
              
              
              echo "nachher:<pre>".htmlentities($content)."</pre>";
              
              ?>
              die ausgabe zum test. so sah es bei mir aus.

              Code:
              vorher:
              <a target="_self" href="seite.php4">
              <a href="seite.php4" target="_self">
              nachher:
              <a href="seite.php4" target="_self">
              <a href="seite.php4" target="_self">
              ergo klappt alles.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Es ist verhext!

                Ich habe jetzt mal deinen Code in eine Datei gepackt. Alles wunderbar. Ich kopiere diese preg-Zeile ind meinen anderen Code und nichts läuft mehr.

                Muß ich also schauen, was da sonst noch so mit dem String passiert.

                Danke erst mal, jetzt weis ich schon mal dass es der richtige Weg ist.

                Grüße, Andi

                Kommentar

                Lädt...
                X