遇到个好笑的事
小项目一般用富文本编辑器把内容存入数据库不是带有着 html 标签的嘛!
需求是提取出来的内容不带 html 标签的!
请问大家会选择如下哪个操作:
1 、建立 2 个字段,一个存带 html 标签的内容,一个存不带 html 的内容
2 、取出数据然后替换掉 html 标签
这时候 php 的好处就出来了 直接一个 strip_tags 函数搞定。
我肯定是选 2 ,这个就是一个业务上的需求吧。今儿不要标签,明儿要标签,后天想把标签加粗展示,大后天想把标签变为红色,总不能一次整多一个字段吧
大部分富文本编辑器都有两个保存 API ,一个存 HTML 格式的,一个存文本格式的,并且两者可以互转
文本格式也只是类似 markdown 去掉部分 HTML 标签,不能全部去掉。比如允许编辑字体颜色,保存时如果把 HTML 标签全部去了,那你就转不回来了
2 ,jsoup 解析整一下
这要从何笑起呢
你会选哪个
2
你再仔细看下题
是的
的确
哦,你的意思是,在有 HTML 版本的同时要不要另外存一个文字版本是吧,那我选 2
选 1 ,我懒
对头,是这样的
这是懒的问题吗?
那你有没有想过,在某些应用情景下,单独存一个不带 html 标签的纯文本,会更方便搜索呢?
选 1 直接存储 更通用
全文搜索用 solar 这些,也不需要你在数据库里存,要存分词的结果
选 1 ,这事我干过。
我之前采集过 aardio 论坛的帖子,aardio 的数据类型有一个是 table 类型,那存 html 不方便搜索 aardio 代码,所以就用了两个字段,一个存 html 源码,一个存纯文本。
嘿嘿
这个应用场景下,你有实践过没
存储的时候就已经处理了,不是多此一举吗
只是选了个方便你的方法,并不是最优选择
正常搜索引擎有去 html 过滤。这不是问题。
额 哪里好笑了?
我是来看笑话的,笑话呢
选 2 丢给前端去替换?
首先考虑的问题是,不带 html 的内容是不是必须存,评判标准是:有没有根据它检索的需求。如果是必须存那就没 2 的什么事了。如果不是必须存,那 1 跟 2 在黑盒功能上是没区别的,用哪个就看你用哪个更方便。
哪里好笑了, 正常一点的富文本都是存自己的 rawObject ,从没存过 HTML , 这个需求要是要求存 HTML 才有毛病。
2
第一个是用空间换时间
第二个是直接花时间去替换,如果不是很大的文本,其实效率也是挺快的
- 哪里好笑了
- “小项目一般用富文本编辑器把内容存入数据库不是带有着 html 标签的嘛!” 这是什么逻辑
显然 2 个方案都不对,实际只要保存带标签的 html 。因为不需要标签时你可以把带标签内容取出来去掉标签。但你去掉了标签保存就恢复不了原来的标签了,除非你的标签是固定的。
2 ,除非需求方同意把富文本编辑器改成纯文本编辑器
反正我没笑
这有什么可笑的?
一般选 1 ,省心
自己定义一套不更好?
小项目,之前我们用了 1 ,因为内容需要按关键字搜索
有什么好笑的,之前做 APP 消息中心的时候就是这么处理的显示部分简介和详情的。
简介就是纯文本,详情就是 webview 展示详细内容
看数据量 和 时间要求了。。
第一个 空间换时间
第二个 时间换空间呗。。。
还是出现了,为了防杠,特别说了,某些应用场景。还分词,轻量情况下,犯得着另外上复杂的东西么?瞧把你能耐的,本来 5 块钱的 VPS 就能解决的,给你搞得非要花 500 块,你这样的 IT 很 JS 啊……
n 年前实践过,许多论坛和 CMS 系统都会同时存两个版本,便于搜索,这么玩还是从国外那些系统传到国内的。
除了搜索需要,再举例一个,类似上面提到的消息通知,包括 Email ,都存在同时需要富文本和纯文本的需求。
为什么会存带 html 标签的, 我这里的富文本是存的楼上说的 rawObject, 也有过前端展示简介纯文本的需求, 是服务端这边提取的文本. 如果还要搜索, 确实还是 ls 说的再加一个字段存纯文本比较好.
得看需求上,要求带样式的内容在“不带 html 标签”的场景下怎么处理,如果只去掉 html 标签就能满足需求的话,我倾向方案 2 。
方案 1 需要确保一致性,解决一致性问题通常会麻烦一些,我个人的偏好是能存一份数据尽量不存多份。
最近想写一个小项目,用纯 gin 写太慢了, 所以想找一个简单方便,集成一些常见的中间件和工具就行,最好不用带管理后台,单纯的脚手架, 谢谢啦 github.com/edd…
在公司做 OpenStack ,做了四五年了,一直负责同一个服务。感觉可以一直做下去,但是只能是 engineer ,想跳槽,搜了一下,几乎没有什么公司招这方面的,难道一般公司…
京东上现在套装只需要 2100 多,比起群晖性价比太高了 如果合适的话,系统应该选啥,平时就存些电影供局域网观看,备份文件,跑跑自己写的代码啥的 硬盘位不够吧,CPU 肯定是…