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小时内。