欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

帖子字数的计数(在有图片的情况上)

程序员文章站 2022-06-12 13:51:06
...
帖子字数的计数(在有图片的情况下)
【目的】
帖子预览:当字数超过一定限制时,将帖子的一部分显示出来,剩下的用 ..显示全文 来代替

【背景】
帖子包含中文,英文,富文本编辑器产生的标签,图片(也是标签引入的),并且帖子内容是经过htmlspecialchars()处理的

【目前困难】
1.希望帖子的“一部分”显示出来,这个“一部分”希望是看起来体积差不多大的一个量,而不是说字符一边多,因为utf-8中,如果是用一定字符数做限制的话,英文帖子和中文帖子会有明显的体积不同的结果,我希望最后显示出来,比如说,都是5行
2.正确的在utf-8的环境下切分,不把一个中文字符变成两个乱码
3.在含有图片的帖子也能正确切分,而不是把关于图片的那个标签中间某处切分
4.由于引入了富文本编辑器,所以很多内容都是带有标签的,这个在预览的时候貌似很难处理好,我想,干脆预览的时候就不带富文本那些格式好了,可是不知道是否有方法去掉这些标签
5.由于要考虑用户输入的安全性问题,所以我是要用htmlspecialchars()处理用户输入的。可是先加富文本的那些标签,后用htmlspecialchars()的话,那些标签也都被处理了,结果就是显示的时候,那些标签都显示出来了。于是我就先用htmlspecialchars()处理用户输入,后加富文本的标签

【实现样例】
知乎网的在没点开问题的时候,那个样子的预览就是我想要做到的——无格式,包含图,差不多四五行

【目前想到的解决方案】
存储的时候把内容存为有格式的正文和截好长度的无格式的预览,这样预览就比较简单了,但问题是如何才能得到去除格式的文字(前文:内容都是在先经过htmlspecialchars()后经过富文本编辑器处理),而且这样做会有冗余,不知道有没有好的办法

【其他】
富文本编辑器是由textarea生成的,基于html的,基本就是加标签进去

【最后】
我水平太水,光描述这个问题就用了好久,各位大大辛苦了,感谢每一个看完了这个帖子的人。。
我想大家应该理解了我的意思吧?希望没有被我绕晕。。。

先行谢过各位了!!帖子字数的计数(在有图片的情况上)

另外,我的网站: 思想记http://42.121.107.221 昨天才刚刚上线测试,连备案还没有做好,属于我的个人爱好吧,就是写写自己的思想啊这样的一个地方,在页面底部的关于我们有这个网站的定位,恭请各位大大前来指点!
------解决方案--------------------
图片尺寸不同时(比如某个图片只是一个小ICON或LOGO),为避免变形,缩放是有一个标准的吧,不可能一律显示为同样的尺寸。如果把这个因素算进去,情况会更复杂一点。

不过,限制条件越多,实际上方法就越集中和清晰。取得图片的尺寸参与显示控制中即可。中文的问题也是可以解决的。
------解决方案--------------------
初看之下网站的BUG就不少,有时间用用再汇总一下吧。
------解决方案--------------------
如果你要精确的一个区域的字的话,光是数字数无论如何都是不行的。
我曾经做过这方面的,方法是建立一个div,把字(一个img标签也看作一个字)一个一个地加进去,如果发现div高度高于某个预设值,就把字删回去。效率比较低,但胜在效果好。
------解决方案--------------------
#5 的做法称为“枚举法”
你也可以用“动态规划法”将每个元素(文字、图片)视为一个个矩形,将问题抽象成:在大矩形中充填最多的小矩形。这是经典算法,现成的代码很多
帖子字数的计数(在有图片的情况上)

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频