php - 创建简单的 Markdown 类

标签 php codeigniter markdown

我目前正在开发一个集成了评论系统的系统,该系统在 Codeigniter 上运行,因此我希望创建一个 Markdown 库,但功能非常少。

我希望拥有的功能是

  • 自动链接
  • 粗体*粗体*
  • 斜体_italic_

实际上就是这样,发布数据将在进入 Markdown 类之前通过 Codeigniter 的 XSS 类运行

所以我的问题是什么是最好的方法,我应该使用那里的库并禁用某些功能,我应该从头开始构建它吗?如果是,我应该如何构建类以及我应该考虑哪些事项。

最佳答案

我最近遇到了类似的情况,我想支持某种标记(BB、Markdown 等)。事实证明,大约 100 年来 BBCode 没有做任何事情,而且为它编写一个正则表达式解析器非常容易(至少对于格式良好的标记)所以我写了一个非常简单的函数来做到这一点。

我的版本还包括图像、代码和颜色支持以及嵌套标签([b][i]粗体和斜体[/i][/b])。

function parseBBCode($string){
    $search = array(
        '/\[b\](.*?)\[\/b\]/',
        '/\[i\](.*?)\[\/i\]/',
        '/\[u\](.*?)\[\/u\]/',
        '/\[img\](.*?)\[\/img\]/',
        '/\[url\=(.*?)\](.*?)\[\/url\]/',
        '/\[code\](.*?)\[\/code\]/',
        '/\[color\=(.*?)\](.*?)\[\/color\]/'
    );
    $replace = array(
        '<strong>\\1</strong>',
        '<em>\\1</em>',
        '<u>\\1</u>',
        '<img src="\\1">',
        '<a href="\\1" target="_blank">\\2</a>',
        '<code>\\1</code>',
        '<span style="color:\\1;">\\2</span>'
    );
    $new = preg_replace($search, $replace, $string);
    return nl2br($new);
}

关于php - 创建简单的 Markdown 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6986349/

相关文章:

php - jQuery $.post 语法

php - CodeIgniter SQL 查询 - 如何对每个月的值求和?

php - Codeigniter 首次使用者

当我尝试重新加载在 XAMPP 上运行的网站时 Windows 崩溃

php - 使用 htaccess 的多个 rewriterole url

php - Mysqli 准备语句插入不插入

javascript - 通过 Markdown 解析器在 HTML 渲染期间删除第一行 block

pdf - Pandoc MD到PDF,全尺寸水平尺

php - 没有属性的对象可以吗?

php - codeigniter 显示数据库连接信息