html 像 php 中的 whatsapp 一样的可视化编辑

html visual editing like whatsapp in php

whatsapp 的最新版本引入了一些消息样式,假设我们想写这样的东西

input 这是一个包含样式的 ~statement~

output 这是一个 声明,里面有样式

即使是 Whosebug 也有这种最小的样式,看起来很棒,我们想在我们的平台上实现这一点,教师在给学生评论时可以使用 ol、ul、粗体、斜体,但我们也想确保他们不允许使用传统的 html 标签,因为当标签更改时我们必须进行更改,而不是我们喜欢这种方法,您可以在 word 中添加特殊字符并在输出中按照您想要的方式转换它们。

我不知道这种编辑的具体条款是什么,请忽略。

语言 因为我们的平台在 php 中已经 运行 我们想在 php

中实现它

思考过程 我们认为 regex 可能可行,但不知道如何实施 ol、ul,我们不太确定这是否是一个正确的实施方法

为什么不允许传统的 html 标签

  1. 并非所有人都知道传统的 html 标签
  2. 想要保护我们的应用程序安全

您可以像这样使用正则表达式:

/~([\w]*)~/

使用preg_replace() 功能,您可以将~ 符号之间的内容替换为您需要的所有内容。例如:

https://regex101.com/r/vD8wI4/2

请注意替换选项卡,我将 ~text~ 替换为 <pre>text</pre>

适用于粗体、斜体等的相同技术:

粗体:

/\*([\w]*)\*/ 

斜体:

/_([\w]*)_/ 

等等

祝你好运。

看看this GitHub library

这里有一些例子:

// traditional markdown and parse full text
$parser = new \cebe\markdown\Markdown();
$parser->parse($markdown);

// use github markdown
$parser = new \cebe\markdown\GithubMarkdown();
$parser->parse($markdown);

// use markdown extra
$parser = new \cebe\markdown\MarkdownExtra();
$parser->parse($markdown);

// parse only inline elements (useful for one-line descriptions)
$parser = new \cebe\markdown\GithubMarkdown();
$parser->parseParagraph($markdown);