|
楼主 |
kuing
发表于 2024-9-20 02:38
本帖最后由 kuing 于 2024-9-23 21:25 编辑 于是我决定将分界值改大一点,直接加大到 100,好像还不够,再加 5 吧。
===== 9-23 更新 =====
加大到 95,并自动隐藏 http:// 或 https:// 及其后的 www.(实际链接中还在,只是不显示)
相关代码改为:
- function parseurl($url, $text, $scheme) {
- global $_G;
- if(!$url && preg_match("/((https?|ftp|gopher|news|telnet|rtsp|mms|callto|bctp|thunder|qqdl|synacast){1}:\/\/|www\.)[^\[\"']+/i", trim($text), $matches)) {
- $url = $matches[0];
- $text = preg_replace("/^https?:\/\/(www\.)?|^www\./i", '', $url); // kk add
- $length = 95; // ori:65
- if(strlen($text) > $length) {
- //$text = mb_substr($url, 0, intval($length * 0.5)).' ... '.mb_substr($url, - intval($length * 0.3));
- $text = mb_substr($text, 0, 64).' ... '.mb_substr($text, -20);
- }
- return '<a href="'.(substr(strtolower($url), 0, 4) == 'www.' ? 'http://'.$url : $url).'" target="_blank">'.$text.'</a>';
- } else {
- ......
复制代码
(其中 mb_substr($text, 0, 64) 的这个数字确保能看到“tid=五位数”,将来上升到六位数时再加一)
测试:
- [url]http://&&&&&&&&&&&&&&&&&&&[/url](一个 & 为 5 个字符,此链接相当于 95 个字符)
- [url]http://&&&&&&&&&&&&&&&&&&&1[/url](加个 1)
复制代码
显示:
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&& ... amp;&&&1
常规帖子链接:
kuing.cjhb.site/forum.php?mod=viewthread&tid=12737
带一些 page、extra、#pid 等:
kuing.cjhb.site/forum.php?mod=viewthread&tid=12737&extra=page%3D10
kuing.cjhb.site/forum.php?mod=viewthread&tid=12737&page=1&extra=page%3D10
kuing.cjhb.site/forum.php?mod=viewthread&tid=12737&page=1&extra=#pid61493
kuing.cjhb.site/forum.php?mod=viewthread&tid=12737&page=1&extra=page%3D1#pid61493
点右上角 # 号处复制的链接:
kuing.cjhb.site/forum.php?mod=redirect&goto=findpost&ptid=12737&pid=61501
应该绝大多数论坛帖子链接都没有省略号了(包括楼上最后那实例)
- [url]https://www.baidu.com/[/url]
- [url]www.baidu.com/[/url]
复制代码
显示:
baidu.com/
baidu.com/ |
|