preg_match preg_replace & str_replace

Dieses Thema im Forum "Backend: PHP und MySQL" wurde erstellt von Titus, 8 April 2011.

  1. Titus

    Titus Goldmember

    Hi,

    ich bin gerade etwas ratlos, ich habe eine Funktion welche aus einem fertigen Text Bildlinks entnimmt, den Link ggf. überarbeitet und dann das wieder einfügt

    aufgerufen wird es über eine Klasse (dortiges Hooksystem), welche eine Funktion mit festem Namen startet, hier wird der Text in einem Array übergeben
    entnehmen von Link & Text läuft auch ordentlich (via preg_replace) aber alle preg_match / str_replace Versuche in der dann aufgerufenen funktion fruchten nicht mehr - ich werd noch irre :mad:
    andere Manipulationen in dieser Funktion wie die Umstrukturierung der Ausgabe klappen, aber sobald ich via str_replace aus 'image.php?i=' => 'image/' machen will passiert eben selbiges nicht
    ich hab es schon mit einer temporären Variable versucht, welche verwendet wird, aber eben nicht wunschgemäß abgeändert

    auch ein simples preg_match auf lediglich einen Namen springt nicht an

    der Witz ist, das der selbe Code an anderer Stelle einwandfrei läuft

    gibt es irgendeine Verschwörung in welcher manche Funktionen in PHP plötzlich nicht mehr funktionieren, oder gibt es neben einem String noch etwas das sich genauso verhält aber offenbar unsichtbar für str_replace ist? :confused:

    die funktion ist in der Klasse als protected function .... am laufen (hat es vielleicht damit zu tun?)

    php ist 5.2.17

    edit:
    ok habs gefunden, preg_replace mit e (Eval) ausführen und dann ' statt " verwenden :rolleyes:
     
  2. GneX

    GneX New Member

    Lass dir den String am besten mal mit einem var_dump ausgeben, um zu schauen ob sich irgendwelche Zeichen eingeschlichen haben.
    Du kannst aber auch mit preg_replace arbeiten: $newString = preg_replace('~(image\.php\?)~i', 'images/', $oldString);
     
  3. Titus

    Titus Goldmember

    so ähnlich bin ich dann auch drauf gekommen, der gag war das ich die Funktion mit den Platzhaltern "\1" usw ausgeführt hatte, welche anschließend aber ersetzt wurden, daher hab ich das Anfangs verpeilt das der eigentliche Link garnicht an die Funktion übergeben wurde zur Ausführzeit weil bei den tests der link ordentlich vorhanden war
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deinem Erleben anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden