Regex Hilfe...

SonMiko

Erfahrenes Mitglied
Hallo zusammen,

ich möchte wenn ich aus meiner Datenbank Text ausgebe, diesen überprüfen ob Links darin vorkommen (http://, www. oder http://www.) und bei gefundenen Vorkommnissen schließlich ein <a href=...> Tag anfügen. Hat jemand dafür zufällig einen Lösungsansatz parat? Leider zählen Reguläre ausdrücke nicht zu meinen Stärken :).

Liebe Grüße,

Mike
 
Hi,

das machst du am besten mit preg_replace (ungetestet):

PHP:
preg_replace('@(http://|www\.[^ ]*)@', '<a href="${1}">${1}</a>', $text);

Best regards
 
Wow genial - macht dieser Coach das von alleine****? Das ist super - ok er macht bei den reinen www. links den Link nicht richtig, das kann ich bestimmt irgendwie noch richten - aber das ist echt genial!
 
Der macht das wohl nicht von alleine, du musst ihn schon mit dem regulären Ausdruck und dem Zieltext füttern. Aber ist ein sehr nützliches Tool, um da ein bisschen herum zu probieren!

Bezüglich deines Problems. Gehe zu erst durch den Text und ersetze die www. durch http://www. (hier ist natürlich wichtig, dass die, die bereits ein http:// haben ausgelassen werden):

PHP:
preg_replace('@ www\.@', ' http://www.', $text);

Dann reicht auch schon:

PHP:
preg_replace('@(http://[^ ]*)@', '<a href="${1}">${1}</a>', $text);

Best regards
 
Zurück