【问题标题】:Format text input before or after storing it in the database?在将文本输入存储在数据库之前或之后格式化文本输入?
【发布时间】:2011-08-08 02:51:58
【问题描述】:

首先,我没有使用所见即所得。唯一的格式化模式如下:*italic***bold**#header#[link](www.link.com),可能还有其他几种。

^ 既然如此,我什么时候进行实际解析?在我将它存储到数据库之前还是在我从数据库中检索它之后?

我宁愿在存储之前不这样做,但我不确定......

【问题讨论】:

  • 1 票关闭它,猜猜我 375 的卑微代表不允许我开一个“用正则表达式解析 HTML”的笑话。
  • 不要把它当成个人,我想有人只是有点高兴。我觉得这很有趣,尽管你自己承认它不准确(回复:“不是真的”)。
  • 不用担心,我实际上在投票结束时得到了支持。更不用说,这是一个很弱的笑话......
  • 另外,你正在尝试做的事情听起来和Markdown 完全一样,在 SO 上就使用了这种风格。有关 Markdown 的一些很好的讨论(尤其是第一个答案),请参阅 this question
  • 酷,我去看看 - 谢谢甜甜圈。打倒格雷格

标签: php regex parsing


【解决方案1】:

从数据库中检索文本之后。在存储之前解析它意味着您丢失了“样式标签”,如果您再次检索它进行编辑,您或您的用户将看到纯 HTML 代码。

【讨论】:

  • 如果你担心性能,缓存格式化的文本。
  • 你编辑了我的帖子真是搞砸了,然后给了我一些建议,好像什么都没发生一样......
【解决方案2】:

我建议这取决于您正在解析的内容量以及您获得的流量,因为大字符串上的正则表达式操作可能会占用大量资源。而且您可能会在尝试显示您的内容的每个页面上执行此操作(除非您使用某种缓存)。

如果您可以将 markdown 解析为 HTML,那么您可以在需要时将其解析回 markdown。因此,为了提高网站前端的显示速度,以 HTML 格式将其保存到数据库意味着您只需检索它并将其吐出即可。对于编辑,您可以根据需要将其解析回 Markdown。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    • 2012-01-03
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    相关资源
    最近更新 更多