PHP中Markdown的使用:库与工具概述
Markdown是一种轻量级标记语言,允许使用简单的语法创建格式化文本。在PHP中,有多个成熟且可靠的库用于处理Markdown。本文将介绍三种最流行的工具:Parsedown、PHP-Markdown 和 League/CommonMark。
1. Parsedown — 轻量且快速的解析器
Parsedown 是PHP中最流行的Markdown库之一。它无需外部依赖,支持所有基本标记元素,并且运行速度非常快。
安装
composer require erusev/parsedown基本用法
<?phprequire 'vendor/autoload.php';
$Parsedown = new Parsedown();
$markdown = <<<MARKDOWN# 一级标题
这是**粗体文本**和*斜体*。
- 列表项 1- 列表项 2
[PythonLib链接](https://pythonlib.ru)MARKDOWN;
echo $Parsedown->text($markdown);?>执行此代码的结果是包含标题、列表和链接的正确HTML。
附加功能
- 支持安全模式(转义HTML标签)
- 支持嵌套列表和表格
- 通过
setBreaksEnabled()和setMarkupEscaped()方法进行配置
2. PHP-Markdown — 经典解决方案
PHP-Markdown 是Michel Fortin基于John Gruber的Perl版本开发的原始Markdown解析器实现。该库严格遵循Markdown规范。
安装
composer require michelf/php-markdown使用示例
<?phprequire 'vendor/autoload.php';
use Michelf\\Markdown;
$markdown = <<<MARKDOWN## 二级标题
> 这是一段引用。> 它可以跨越多行。
1. 有序列表第一项2. 第二项
`行内代码` 和代码块:
<?php echo "Hello, World!"; ?>MARKDOWN;
$html = Markdown::defaultTransform($markdown);echo $html;?>特点
- 通过MarkdownExtra支持扩展语法
- 自动转换链接和电子邮件地址
- 可在输出中禁用HTML
3. League/CommonMark — 标准化实现
League/CommonMark 是一个实现官方CommonMark标准的库。它确保与其他解析器的最大兼容性,并支持扩展。
安装
composer require league/commonmark带扩展的示例
<?phprequire 'vendor/autoload.php';
use League\\CommonMark\\Environment\\Environment;use League\\CommonMark\\Extension\\CommonMark\\CommonMarkCoreExtension;use League\\CommonMark\\MarkdownConverter;
// 创建带有基本扩展的环境$environment = new Environment();$environment->addExtension(new CommonMarkCoreExtension());
$converter = new MarkdownConverter($environment);
$markdown = <<<MARKDOWN| 表格 | 列1 | 列2 ||------|-----|-----|| 行1 | 值 | 值 || 行2 | 值 | 值 |
~~删除线文本~~ 和 ==高亮文本== (GFM)。MARKDOWN;
echo $converter->convert($markdown)->getContent();?>附加扩展
- Table — 表格支持
- Strikethrough — 删除线文本
- TaskList — 复选框
- Autolink — 自动链接