Mein Freund der reguläre Ausdruck , mal wieder.

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

  • Mein Freund der reguläre Ausdruck , mal wieder.

    Mal wieder Ich kann wirklich langsam sagen ich hasse sie, immer wenn ich denke ich habs raus dann geht was nicht

    Hier das Problem :

    Code:
            if($configdaten["urlTag"] == "on") {
            $hack = "|(\[url\])(.*)(\[/url\])|";
            $code = "<!-- JBB URL Code --><a href=\"http://\\2\">\\2</a><!-- JBB URL Code -->";
            $text = preg_replace($hack,$code,$text);
            $hack = "|(\[url=http://)(.*)(\])(.*)(\[/url\])|";
            $code = "[url=\\2]\\4[/url]";
            $text = preg_replace($hack,$code,$text);
            $hack = "|(\[url=)(.*)(\])(.*)(\[/url\])|";
            $code = "<!-- JBB URL Code --><a href=\"http://\\2\">\\4</a><!-- JBB URL Code -->";
            $text = preg_replace($hack,$code,$text);
            }
    Dieser Teil funzt genau wie aufem VBBoard Aber der Code ist von mir Naja jetzt aber das Problem :

    Code:
    if($configdaten["autolink"] == "on") {
            $hack = '|([^"])(http://)(.*)|';
            $code = "<!-- JBB URL Auto-Linker --><a href=\"http://\\3\">http://\\3</a> <!-- JBB URL Auto-Linker -->";
            $text = preg_replace($hack,$code,$text);
            $hack = '|([^http://])(www.)(.*)|';
            $code = "<!-- JBB URL Auto-Linker --><a href=\"http://www.\\3\">http://www.\\3</a> <!-- JBB URL Auto-Linker -->";
            $text = preg_replace($hack,$code,$text);
            }
    Dieser Code soll in Beiträgen einfach die urls die so eingegeben wurden umwandeln, leider wandelte er bisher auch die um die in URL Tags eingebaut waren, das wollte ich abstellen aber irgendwie funzt es nicht richtig, naja und jetzt hab ich auch das Problem wenn die url ganz am anfang anfängt dann wird sie nicht erkannt

    SO ein Mist, wer kann mir da erwas unter die Arme greifen ??

  • #2
    Arbeite besser mit einer Mischung aus spliti und eregi_split. Dann kannst du dir die Teile "merken" die du schon bearbeitet hast und bei der weiteren Bearbetung auslassen.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      und weiter gehts ..

      .... hab jetzt den Mut gefunden weiter zu machen an diesen elenden Tags nachdem ich jetzt eine Zeitlang die reg. Ausdrücke reg. Ausdrücke habe sein lassen.

      Das erste Problem ist jetzt gelöst aber da ist noch immer der Autolinkfinder , das ist ein elend also hier der Ausdruck ==>
      $hack = "§(?!(=|\]))(http://)([a-zA-Z0-9\.].*)§";
      der findet leider garnichts sollte aber eigentlich korrekt sein

      aber wir haben ja noch ein paar

      $hack = "§(?!(=|\]))(http://)(.*)§";

      dieser funzt an sich korrekt leider zu korrekt , er bindet nämlich die \n auch ein und das ist schlecht weil die im weiteren verlauf in <br> Tags umgewandelt werden. Es liegt an (.*) wie kann ich das verbessern ? ich habs so versucht ==>

      $hack = "§(?!(=|\]))(http://)(.*)(\n)§";

      ohne erfolg Ich denke immer ich habs gerafft und schon ist der nächste hänger drin

      Kommentar


      • #4
        und wieder ein Problem damit

        So, ich hab schon wieder ein Problem mit diesen Teilen entdeckt nur bin ich mir nicht sicher an was es liegt
        Code:
                if($configdaten["autolink"] == "on") {
                $hack = '§(?<!(\]|=|"|>))(http://)([_=\-\#\?\/\&a-zA-Z0-9\.]*)§';
                $code = "<!-- JBB URL Auto-Linker --><a target=\"_blank\" class=\"red\" href=\"http://\\3\">\\3</a> <!-- JBB URL Auto-Linker -->";
                $text = preg_replace($hack,$code,$text);
                $hack = '§(?<!(/|\]|>|=|"))(www.)([_=\-\#\?\/\&a-zA-Z0-9\.]*)§';
                $code = "<!-- JBB URL Auto-Linker --><a target=\"_blank\" class=\"red\" href=\"http://www.\\3\">www.\\3</a> <!-- JBB URL Auto-Linker -->";
                $text = preg_replace($hack,$code,$text);
                }
        Das problen ist das & Zeichen, wenn es in einem Link drin ist dann wird er leider zu einem &; konvertiert und damit der Link zerstört. Liegt das am Ausdruck oder an einem anderem Problem , vieleicht Sonderzeichen im Text der zuvor mit htmlentities verändert wurde ?

        Kommentar


        • #5
          An der ereg kann ich nichts böses entdecken. Zur Fehlersuche hilft es, sich gelegentlich mal Zwischenergebnisse echoen zu lassen.
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar

          Lädt...
          X