不确定如何继续允许或防止在此 preg_replace 中的 url 中的 underscore 和 colon 处剪断。也不确定我可能会遗漏哪些其他特殊字符会截断 url
$text = preg_replace_callback('@(https?://([-\w\.]+)+(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)?)@', function($m) {
return '<a href="' . $m[1] . '" target="_blank">' . substr($m[1], 0, 75) . '</a>';
}, $text);