metnethu / bbcode
bbcode解析器的分支,首先处理自定义标签。
1.2
2022-10-02 20:27 UTC
Requires
- php: >=5.3.7
Requires (Dev)
- phpunit/phpunit: ~4
This package is auto-updated.
Last update: 2024-09-30 01:49:01 UTC
README
一个解析BBCode并将其转换为HTML代码的库。用PHP编写。
安装
通过Composer
composer require chriskonnertz/bbcode
从那时起,您可以运行composer update以获取此库的最新版本。
可以在不使用Composer的情况下使用此库,但此时需要注册一个自动加载函数。
此库需要PHP 5.5或更高版本。
使用示例
以下是一个使用此库的PHP代码的最小示例。它假定存在一个自动加载器。
$bbcode = new ChrisKonnertz\BBCode\BBCode(); $rendered = $bbcode->render('[b]Hello world![/b]'); echo $rendered;
可用标签
[b]:字体加粗 -[b]Hello world[/b][i]:字体斜体 -[i]Hello world[/i][s]:字体删除线 -[s]Hello world[/s][u]:字体下划线 -[u]Hello world[/u][code]:代码 -[code]Hello world[/code][email]:电子邮件(可点击) -[email]test@example.com[/email][url]:URL(可点击) -[url=http://example.com]Example.com[/url][img]:图片(不可点击) -[img]http://example.com/example.png[/img][quote]:引用 -[quote]Hello world[/quote][youtube]:嵌入YouTube视频 -[youtube]a-video-id-123456[/youtube][font]:字体(名称) -[font=Arial]Hello world![/font][size]:字体大小 -[size=12]Hello world![/size][color]:字体颜色 -[color=red]Hello world![/color][left]:文本对齐:左对齐 -[left]Hello world[/left][center]:文本对齐:居中 -[center]Hello world[/center][right]:文本对齐:右对齐 -[right]Hello world[/right][spoiler]:隐藏内容(需要JavaScript代码添加行为) -[spoiler]Hello world[/spoiler]- 列表
[list]:列表 -[list]...list items...[/list][*]:列表中的项目 -[*]Hello world!\r\n[*]Hello moon![li]:列表中的项目(别名) -[li]Hello world!\r\n[/li][li]Hello moon!/[li]- 完整示例:
[list][*]Hello world![li]Hello moon![/li][/list]
可以使用addTag($name, Closure $closure)方法添加自定义标签。
有用的方法
renderRaw($text = null):仅渲染文本,不带任何标签addTag($name, Closure $closure):添加自定义标签(带有名称和闭包)forgetTag($name):删除具有给定名称的标签ignoreTag($name):将标签添加到忽略标签数组中permitTag($name):从忽略标签数组中删除标签
BBCode类还实现了__toString()方法,该方法内部调用render()方法。
自定义标签示例
此代码将添加一个创建<h1>HTML标签的[h1]BBCode标签。
$bbcode->addTag('h1', function($tag, &$html, $openingTag) { if ($tag->opening) { return '<h1>'; } else { return '</h1>'; } });
多字节字符
此库支持使用多字节字符。
分支
此存储库最初是从kaimallea/php-bbcode分支出来的。然而,从那时起已经完全重写。
状态
此存储库的状态:维护中。创建一个问题,您将得到响应,通常在48小时内。