文字数などは任意に変えてくださいな。
■普通のテキストの場合
$str = preg_replace('/(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]{32})([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/', '>\\1\\2...<', $str);
■リンクテキストの場合
$str = preg_replace('/>(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]{32})([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)</', '>\\1\\2...<', $str);
