Mumu: Probleme mit Zeichenkette bei preg_replace

Beitrag lesen

$description = preg_replace('|<img(.) src="/images/(.)"(.)>|i', '|<img src="http://www.website.de/images/(.)">|i', $description);

  

> Nur leider kauft der Gute mir die zweite Zeichenkette nicht ab - wieso nicht?  
  
Warum sollte preg\_replace() irgendwas kaufen. Ersetzen tut's.  
  
(Falls es nicht ersetzt, wäre es überaus sinnig, das auch so zu schreiben, und zwar mitsamt einer Beschreibung, was es denn stattdessen tut. "Nicht abkaufen" ist als Beschreibung so schlau wie "draußen ist es hell" als Wetterbericht.)  
  

> Kann mir da jemand ein bisschen helfen, oder hab' ich da vielleicht einen Fehler???  
  
Falsch ist die Verwendung von .\*, das greift sich nämlich alles, was es kriegen kann. Aus zwei <img>-Elementen würde der eines machen, vom <img des ersten bis zum > des zweiten Elements. Benutze beispielweise [^>]\* (oder [^"]\* für die Attribut-Daten).  
  
Falsch ist weiterhin, im zweiten Argument, der einzusetzenden Zeichenkette, .\* zu verwenden, sofern du da etwas eingesetzt haben möchtest. Verwende $1 bis $9 für den Inhalt der jeweiligen Klammer aus dem Muster.  
  
Vielleicht liest du dir besser erstmal Anleitung zur Funktion durch: <http://de.php.net/manual/de/function.preg-replace.php>.