]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
linkify URLs
authorEvan Prodromou <evan@prodromou.name>
Thu, 29 May 2008 18:12:44 +0000 (14:12 -0400)
committerEvan Prodromou <evan@prodromou.name>
Thu, 29 May 2008 18:12:44 +0000 (14:12 -0400)
darcs-hash:20080529181244-84dde-6b51042c5c92581d8aecfbb83630646afc078793.gz

lib/util.php

index 0fa3178c89e3c6c1d6660b6e104926f2d4b4487b..20c8834c1b7537ea8aa27a58eded5cf0a1b68f79 100644 (file)
@@ -349,10 +349,13 @@ function common_canonical_email($email) {
        return $email;
 }
 
+define('URL_REGEX', '^|[ \t\r\n])((ftp|http|https|gopher|mailto|news|nntp|telnet|wais|file|prospero|aim|webcal):(([A-Za-z0-9$_.+!*(),;/?:@&~=-])|%[A-Fa-f0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;/?:@&~=%-]*))?([A-Za-z0-9$_+!*();/?:~-]))');
+
 function common_render_content($text, $notice) {
        $r = htmlspecialchars($text);
        $id = $notice->profile_id;
        $r = preg_replace('/(^|\s)@([\w-]+)($|\s)/e', "'\\1@'.common_at_link($id, '\\2').'\\3'", $r);
+       $r = preg_replace('/'.URL_REGEX.'/', '<a href="\\0" class="extlink">\\0</a>', $r);
        # XXX: # tags
        # XXX: machine tags
        return $r;