preg_match preg_replace & str_replace

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:
 

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);
 

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
 
Oben