HILFE, wo ist der Fehler...

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

  • HILFE, wo ist der Fehler...

    Hallo Leute,

    sieht hier jemand den Fehler?

    Folgendes soll geschehen:
    Ich lasse Content aus einer DB in $text holen. Dann sollen alle Links gesucht und wie folgt ersetzt werden:
    Die targets "_blank" und "_self" sollen auf "right" gesetzt werden (funktioniert auch),
    die URL in href="..." soll ausgelesen und ersetzt werden durch "links_edit.php4?string=" + die ursprüngliche URL mit base64 codiert, damit die Leer- und sonderzeichen bei der Überhabe keinen unsinn machen.
    Es funnktioniert auch alles schon so weit bis auf dass nur normale URLs wie "www.domain.de" erkannt und ersetzt werden. Sobald ein "?" drin vorkommt, z.B. in home.php4?id=50 wird diese nicht ersetzt.
    Komischerweise erkennt preg_match_all die aber exakt und wenn ich $url ausgebe, stehen die URLs auch richtig drin. Nur bei dem letzten ereg_replace() wird diese nicht erkannt.

    Hat da jemand eine Lösung ???

    Soweit mein Script:

    preg_match_all("#<a href=\"(.*)\" target=\"(.*)\">(.*)</a>#isU",$text,$matches); // alle Links finden
    $total = count($matches[1]);

    $text = ereg_replace("target=\"(_blank|_self)\"","target=\"right\"",$text); // ersetzt alle Targets

    for ($i=0; $i < $total; $i++){

    $url = $matches[1][$i];
    $text = ereg_replace("href=\"".$url."\"","href=\"links_edit.php4?string=".base64_encode($matches[0][$i])."\"",$text);
    }


    Grüße & Dank,
    Andi

  • #2
    weil das ? ein Sonderzeichen in dem regulären Ausdruck ist.
    Dies mußte vorher entwerten:


    $text = ereg_replace("href=\"".str_replace("?","\?",$url)."\"","href=\ ...
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Oh ja, logisch - war mal wieder blind auf den Ohren!

      Danke, Andi

      Kommentar

      Lädt...
      X