codebrisk/bbcodeparser

使用这个库轻松解析BBCode。

v1.3 2014-06-30 21:50 UTC

This package is not auto-updated.

Last update: 2024-09-23 06:18:31 UTC


README

Build Status

BBCodeParser

BBCodeParser是一个独立的库,解析所有(?)常见的BBCode标签。最简单的安装方式是通过composer,并且与Laravel 4的集成同样简单。

可用的标签有

  • [b][/b] 粗体
  • [i][/i] 斜体
  • [u][/u] 下划线
  • [s][/s] 删除线
  • [size=4][/size] 字体大小
  • [color=#eee][/color] 字体颜色
  • [center][/center] 居中
  • [quote][/quote] 引用
  • [quote=John Doe][/] 命名引用
  • [url][/url] 链接
  • [url=http://example.com]example.com[/url] 命名链接
  • [img]http://example.com]example.com/logo.png[/img] 图片
  • [list=1][/list] 有序列表(数字)
  • [list=a][/list] 有序列表(字母)
  • [list][/list] 无序列表
  • [*] 列表项
  • [code][/code] 代码
  • [youtube][/youtube] YouTube

安装

安装BBCodeParser库最简单的方式是通过composer。如果您不知道什么是composer或者如何使用它,您可以在他们的网站上找到更多相关信息。

Composer

您可以通过Packagist找到BBCodeParser类。在您的composer.json文件中添加该包。

"golonka/bbcodeparser": "1.3"

然后运行安装或更新以下载您的新需求

php composer.phar install

或者

php composer.phar update

现在您可以要求vendor/autoload.php文件以PSR-0自动加载库。

示例

// include composer autoload
require 'vendor/autoload.php';

// import the BBCodeParser Class
use Golonka\BBCode\BBCodeParser;

// Lets parse!
$bbcode = new BBCodeParser;
$bbcode->parse('[b]Bold[/b]'); // <b>Bold</b>

如果您是Laravel 4的粉丝,则集成只需一瞬。下面我们将介绍如何完成这项工作。

Laravel 4集成

BBCodeParser类具有可选的Laravel 4支持,并附带服务提供者和门面,以便于集成。在正确安装后,只需按照说明操作。

打开您的Laravel配置文件config/app.php,并添加以下行。

$providers 数组中添加此包的服务提供者。

'Golonka\BBCode\BBCodeParserServiceProvider'

将此包的门面添加到$aliases数组中。

'BBCode' => 'Golonka\BBCode\Facades\BBCodeParser'

现在BBCodeParser类将被Laravel自动加载。

示例

默认情况下将解析所有标签

BBCode::parse('[b]bold[/b][i]italic[/i]');

如果您在解析时只想使用某些标签,可以通过以下方式实现

// In this case the [i][/i] tag will not be parsed
BBCode::only('bold')->parse('[b]bold[/b][i]italic[/i]');

或者

// In this case all tags except [b][/b] will be parsed
BBCode::except('bold')->parse('[b]bold[/b][i]italic[/i]');

自定义解析器

您可以添加新的自定义解析器或覆盖现有的解析器。

// name, pattern, replace
BBCode::setParser('mailurl', '/\[mailurl\](.*)\[\/mailurl\]/', '<a href="mailto:$1">$1</a>');