FraFu: Pattern Syntax für preg_replace

Beitrag lesen

Hallo!

Wiedermal ein Problem mit einer Pattern Syntax, bei der ich einfach nicht weiterkomme und nicht mal ansatzweise eine Lösung parat habe.

Gegeben ist ein String in dem Images wie folgt vorkommen:

  
<img width="120" height="86" align="left" src="http://localhost/project/view/thumb.php5?image_id=168" alt="alt text" />  

Daraus werden soll folgendes:

  
<a title="Klicke auf das Bild um das nächste anzuzeigen." rel="lightbox[set]" href="./view/medium.php5?image_id=168"><img width="120" height="86" align="left" title="klick mich an!" alt="alt text" src="./view/thumb.php5?image_id=168"></a>  

Dh. thumb.php5 wird durch medium.php5 ersetzt und drumherum wird ein a Tag gesetzt.

Ich habe ein preg_replace Statement, dass mir diese Arbeit bis zu einem gewissen Grad erledigt:

  
$str=preg_replace('~(?is)<img [^>]*src=(["\'])[^"\']+thumb.php5\?image_id=(\d+)(\\1)[^>]*>~',  
   '<a title="Klicke auf das Bild um das nächste anzuzeigen." rel="lightbox[set]" href="'.ROOT_PATH.'view/medium.php5?image_id=$2"><img title="klick mich an!" src="'.ROOT_PATH.'view/thumb.php5?image_id=$2"></a>', $str);  

Das preg_replace ignoriert aber alle Attribute außer src. Dh es gehen die Attribute width, height, align und alt verloren.
Wie muss ich das preg_replace erweitern, dass diese erhalten bleiben?

Ich hab in der PHP Doku zu Pattern Syntax, preg_replace usw. nachgelesen, ich finde aber leider keinen Ansatz um das Problem zu lösen.

mfg
  frafu