codedepp / bbcode
BBCode 解析器,用于HTML的转换。
Requires (Dev)
- phpunit/phpunit: ^6.1
This package is not auto-updated.
Last update: 2024-09-27 15:06:11 UTC
README
BBCode 解析器,用于HTML的转换。
安装
需要 PHP 7.1+。
要获取 BBCode 的最新版本,只需使用 Composer 引入项目
$ composer require codedepp/bbcode
使用方法
convertFromHtml(string $text)
将 BBCode 转换为 HTML 并返回解析后的文本字符串。
示例
use Codedepp\BBCode\BBCode; $bbCode = new BBCode(); // Output: '[b]Hello word![/b]' $bbCode->convertFromHtml('<strong>Hello word!</strong>');
convertToHtml(string $text, [$caseSensitive])
将 HTML 转换为 BBCode 并返回解析后的文本字符串。
示例
use Codedepp\BBCode\BBCode; $bbCode = new BBCode(); // Output: '<strong>Hello word!</strong>' $bbCode->convertToHtml('[b]Hello word![/b]');
此函数还支持通过可选参数进行大小写敏感的 BBCode 解析。
要启用此功能,只需将 BBCode::CASE_SENSITIVE 作为第二个参数传递
// Output: '<strong><i><u>Ran<strong>d</strong>om text</u></i></strong>' $bbCode->convertToHtml('[B][I][U]Ran[b]d[/b]om text[/u][/I][/b]', BBCode::CASE_SENSITIVE);
stripBBCodeTags(string $text)
从文本中删除 BBCode 标签并返回字符串输出。
示例
use Codedepp\BBCode\BBCode; $bbCode = new BBCode(); // Output: 'Hello word!' $bbCode->stripBBCodeTags('[b]Hello word![/b]');
only(array list or ...args)
将解析器设置为仅转换指定的 BBCode 标签。
示例
use Codedepp\BBCode\BBCode; $bbCode = new BBCode(); // Output: '<strong>Bold</strong> [i]italic[/i]' $bbCode->only('bold')->convertToHtml('[b]Bold[/b] [i]italic[/i]'); // Or as array $bbCode->only(['bold'])->convertToHtml('[b]Bold[/b] [i]italic[/i]');
except(array list or ...args)
将解析器设置为仅转换除了列表中指定的所有 BBCode 标签。
示例
use Codedepp\BBCode\BBCode; $bbCode = new BBCode(); // Output: '[b]Bold[/b] <i>italic</i>' $bbCode->except('bold')->convertToHtml('[b]Bold[/b] [i]italic[/i]'); // Or as array $bbCode->except(['bold'])->convertToHtml('[b]Bold[/b] [i]italic[/i]');
addParser(string $name, string $pattern, string $replace, string $content)
添加基于正则表达式的 BBCode 解析器,将找到的模式转换为所需的一种。
示例
use Codedepp\BBCode\BBCode; $bbCode = new BBCode(); // Add "[link target=http://example.com]Example[/link]" parser. $bbCode->addParser( 'custom-link', '/\[link target\=(.*?)\](.*?)\[\/link\]/s', '<a href="$1">$2</a>', '$1' ); // Output: '<a href="www.yourlinkhere.com">Text to be displayed</a>.' $bbCode->convertToHtml('[link target=www.yourlinkhere.com]Text to be displayed[/link].');
addHtmlParser(string $name, string $pattern, string $replace, string $content)
添加 HTML 解析器,将模式转换为所需的一种。
请参见 addParser 的示例代码。
addLinebreakParser()
将换行解析器添加到 BBCode 解析器列表中,将新行转换为 HTML 中的 <br />。
Laravel 安装
安装 BBCode 后,您需要注册服务提供程序。打开 config/app.php 并将以下内容添加到 providers 键中。
\Codedepp\BBCode\BBCodeServiceProvider::class,
如果您喜欢,可以在 config/app.php 文件的 aliases 键中注册外观。
'BBCode' => \Codedepp\BBCode\Facades\BBCode::class,
注册外观后,您可以使用库的功能,如下所示
// Output: '<strong>Laravel wins</strong>' echo BBCode::convertToHtml('[b]Laravel wins[/b]'); // Output: '[b]Do Symphony or not[/b]' echo BBCode::convertFromHtml('<strong>Do Symphony or not</strong>'); // Output: '<strong>What does<strong> [i]fox say[/i]' echo BBCode::only('bold')->convertToHtml('[b]What does[/b] [i]fox say[/i]');
测试
要运行测试,只需在终端中运行以下命令
composer test
贡献 & 问题
欢迎贡献。请清楚地说明 PR 的目的,并遵循当前的样式。
如果问题描述清晰,包括一个简化的测试用例和复现步骤,则问题可以最快得到解决。
许可证
codedepp/bbcode 库版权所有 © Codedepp,许可协议为 MIT 许可证 (MIT)。
有关更多信息,请参阅 MIT 许可证。