Johannes Zeller: [Reg-Exp] Links mit preg_replace umformen

Beitrag lesen

Hallo Ben,

Es sollen alle Bildnamen bestehend aus Kleinbuchstaben, Zahlen und Bindestrichen der Formate jpg,gif und png möglich sein.

Mein bishereriger Versucht sieht wie folgt aus, funktioniert jedoch leider nicht:

$message = preg_replace('/([^:]+):img:\(.*)\/sU','<img src="\1" alt="\2">',$message);

Mit preg_replace wirst du hier nicht weiterkommen. Du benötigst die Funktion preg_replace_callback().

Auch dein Regex lässt sich verbessern: /([a-z0-9-]+.(gif|jpg|png))?:img:\(.*)\/sU

Dein Funktionsaufruf müsste dann so aussehen:

$message = preg_replace_callback('/([a-z0-9-]+\.(gif|jpg|png))?:img:\*(.*)\*/sU/,  
                                 create_function('$matches',  
                                     'return "<img src="{$matches[1]}" alt="{$matches[3]}">";'),  
                                 $message);

Schöne Grüße,

Johannes