Normalmente se hace del lado del servidor con expresiones regulares -podés hacerlo con javascript, también con expresiones regulares, pero sería mejor en el servidor-.
En php podrías usar algo así (se trata de Twitter en este caso):
Código:
function reduceurl($url, $url_length) {
$reduced_url = substr($url, 0, $url_length);
if (strlen($url) > $url_length) $reduced_url .= '...';
return $reduced_url;
}
function smarty_modifier_url2link ($value) {
if ($value == '0') {
return '0';
} else if (is_array($value)) {
return $value;
} else if ($value) {
return preg_replace(
"/https?:\/\/[a-zA-Z0-9_~.,:;\/?&=+$%#!\-]+/se",
'"<a href=\"$0\" target=\"_blank\">".reduceurl("$0",10)."</a>"',
$value
);
}
}
function convert2link($text){
$text=smarty_modifier_url2link($text);
$text = preg_replace('#@([\\d\\w]+)#', '<a href="http://twitter.com/$1" target="_blank">$0</a>', $text);
$text = preg_replace('/#([\\d\\w]+)/', '<a href="http://search.twitter.com/search?q=%23$1" target="_blank">$0</a>', $text);
return $text;
}