ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 长文本缩略 做项目的时候偶尔会遇到要讲一下长文本进行缩略的需求,这里提供一个案例来讲解一下具体的做法。 ### 案例 有一段文章,由于内容比较长,所以在显示的时候需要进行缩略。 #### 原文如下 >《让我们荡起双桨》是抒情的二部曲式合唱,表现作曲家对现实生活的感受。描绘了新中国的花朵们在洒满阳光的湖面上,划着小船尽情游玩、愉快唱歌的欢乐景象。 #### 缩略后的内容如下 >《让我们荡起双桨》是抒情的二部曲式合唱,... ### 代码实现 理论上我们可以直接使用PHP自带的字符串截取函数来处理,然后截完打上省略号就可以的,但是实际操作后,会出现返回字符串或者乱码的情况,代码如下: ``` <?php $str = '《让我们荡起双桨》是抒情的二部曲式合唱,表现作曲家对现实生活的感受。 描绘了新中国的花朵们在洒满阳光的湖面上,划着小船尽情游玩、愉快唱歌的欢乐景象。'; echo substr($v['content'], 0, 20) . '...'; /* 输出:空字符串 * 这里实际已经报错了,所以后续的连接操作也显示不出来 */ ``` 这种方式行不通的话,那么可行的操作是怎么样的呢? 实际上我们知道中文字符是由编码翻译而成的,所以不能以纯字符的方式来截取,而php_mbstring这个扩展则为我们封装了根据编码类型来截取的方法,示例如下: ``` <?php $str = '《让我们荡起双桨》是抒情的二部曲式合唱,表现作曲家对现实生活的感受。 描绘了新中国的花朵们在洒满阳光的湖面上,划着小船尽情游玩、愉快唱歌的欢乐景象。'; echo mb_substr($v['content'], 0, 20, 'GBK') . '...'; // 输出:《让我们荡起双桨》是抒情的二部曲式合唱,... ``` 到此,问题圆满解决。