长沙论坛开发:说说Discuz字符串截取的那些事

2014-12-31 11:38 栏目:技术开发 查看(9482)

湖南幸运赛车爱彩人彩票网 www.schu9.cn 在我们一个网站建设项目中通常需要进行一些文字长度的限制,这就是我们常说的字符串截取。比如说一段文章的摘要,在A页面可能是显示的200个字,在B页面可以只需要100个字。如果我们为了这个差异而去做几次程序的功能,那显然有点吃亏或者不划算。因此我们通常采取的方式都是把摘要信息存入一个变量中,当然包含的字符数量通常是我们需要应用的最大数量。

比如下面是两种不同的列表方式,而其中的摘要部分就是Discuz的摘要,上面的是输出所有的字数,而后面一部分是截取一部分输出(因为如果后面那个也输出全部的话显然不够美观。)

长沙论坛开发:说说Discuz字符串截取的那些事 长沙论坛开发:说说Discuz字符串截取的那些事

那么这个时候问题来了,究竟该如何来截取这个字符串才能更加符合我们的要求。如果同时了解前端和后端开发的朋友会有以下解决方案:通过CSS和PHP的任何一种来解决。

首先来说CSS,我们知道CSS完全也可以实现截取的字符串的目的,那那实际上不算作截取,只能算是“隐藏”多余的部分,而在上面两张图片的下面一张中,我们发现我们在处理的时候故意在三行文字的最后一行不充满,如果是CSS就不能这样,只能是充满状态。除此之外,有时候用CSS来“隐藏”会不太好操作。

再来聊聊PHP操作,我们知道不管是JS也好,还是PHP也好,甚至是其他的诸如java等语言。都有系统内置的很多方法,而其中也必定包括了截取字符串的方法。

可能大家一开始就会想到的是substr,当然也是我们经常用到的。但在这里就有一个问题,因为编码的问题会导致输出乱码,有朋友说我会处理这个问题,对!没错可以处理,但是作为官方认证的开发者肯定不要忘记DZ的规范,不能在前台模版文件中写入过多的PHP代码,特别执行一些功能的。简而言之,就是你处理了,可能就不符合Discuz二次开发规范了。

接着就会想到了mb_substr了,这个方法很多人也熟悉,而且我发现很多Wordpress模版中就使用到它,当然似乎是WordPress进行加工后的这个函数。mb_substr相对substr多了一个编码识别,但是可能有的用户的服务器都没打开php_mbstring.dll(当然我们的打开了)。

然后看到了Discuz在论坛首页模版文件discuz.htm中有截取板块最新发布文章的标题,而使用到的函数就是cutstr,而这个其实就是Discuz内置的一个方法。因此综合起来说,在Discuz中直接用这个是靠谱的,当然我也在网上看到一些朋友说,其实DZ的这个函数也有BUG。但对于基于Discuz来做二次开发,我想这已经不是什么问题了。

 

与我们的项目经理联系
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流

转载请注明出处:长沙论坛开发:说说Discuz字符串截取的那些事 - 微构网络
分享:
  • 我国农村金融取得长足发展 2019-05-27
  • 世界自然遗产旅行地中国国家地理网 2019-05-27
  • 中央直属机关工委主要职责 2019-05-22
  • 打造“互联网+”,共享经济改变百姓生活 2019-04-22
  • 破财免灾!C罗愿向西班牙税务部门缴纳1880万欧元 2019-04-19
  • 中国品牌SUV新标杆 人民网试驾WEY VV7VV5 2019-04-19
  • 杨爱国:借助小博会促进尚志社会经济加快发展 2019-04-15
  • 泪目!川农院士逝世5年,夫人每日都去看他的雕像…思念如马,不停蹄! 2019-04-15
  • 海信世界杯首秀出奇招 竟打出俄文广告 2019-03-25
  • 财政部:对原产于美国的500亿美元进口商品加征关税 2019-03-11
  • 我和《人民日报》(我与人民日报·纪念人民日报创刊70周年) 2019-03-11
  • 杭州再增100个海绵城市项目 2018-11-08
  • 新华网申领新闻记者证资格审核公示 2018-11-08
  • 697| 896| 561| 389| 227| 782| 844| 648| 289| 302|