Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Coder How To's

Algorithmen Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

URLs in Text hervorheben

Die folgenden Funktionen helfen euch mit Hilfe von regulären Ausdrücken einen normalen String auf URLs zu durchsuchen und diese klickbar zu machen.

Hier ein einfach nachvollziehbares Beispiel um URLs mit Protokoll http zu ersetzen:

url-in-text-hervorheben.php
  1. <?php
  2.  
  3. $string = 'ich bin eine http://domain.tld - und du?';
  4. $pattern = '/(http:\/\/[^ ]+)/i';
  5. $replacement = '<a href="$1">$1</a>';
  6.  
  7. echo preg_replace($pattern, $replacement, $string);
  8.  
  9. ?>

Komplexeres Beispiel:

url-in-text-hervorheben.php
  1. function make_clickable($text) {
  2.         // mit leerzeichen nach rechts ruecken
  3.         $ret = ' '.$text;
  4.         // matcht protokolle http:// oder ftp:// oder skype://
  5.         $ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
  6.         // matcht urls die mit www oder ftp beginnen
  7.         $ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
  8.         // matcht email adressen
  9.         $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
  10.         // entfernt unsere einrueckung wieder
  11.         $ret = substr($ret, 1);
  12.         return($ret);
  13. }
  14.  
  15. $string = 'ich bin eine www.domain.tld - und du?';
  16. echo make_clickable($string);
Zuletzt geändert am 19.09.2007 11:21 Uhr
  Impressum