The Golonka\BBCodeParser package will help you with parsing BBCode.
Via Composer
$ composer require golonka/bbcodeparserTo parse some text it's as easy as this!
$bbcode = newGolonka\BBCode\BBCodeParser;
echo$bbcode->parse('[b]Bold Text![/b]');
// <strong>Bold Text!</strong>Would like the parser to not use all bbcodes? Just do like this.
$bbcode = newGolonka\BBCode\BBCodeParser;
echo$bbcode->only('bold', 'italic')
->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]');
// <strong>[u]Bold[/u] <em>Italic</em>!</strong>echo$bbcode->except('bold')
->parse('[b]Bold[/b] [i]Italic[/i]');
// [b]Bold[/b] <em>Italic</em>By default the parser is case sensitive. But if you would like the parser to accept tags like [B]Bold Text[/B] it's really easy.
$bbcode = newGolonka\BBCode\BBCodeParser;
// Case insensitiveecho$bbcode->parse('[b]Bold[/b] [I]Italic![/I]', true);
// <strong>Bold</strong> <em>Italic!</em>// Or like thisecho$bbcode->parseCaseInsensitive('[b]Bold[/b] [i]Italic[/i]');
// <strong>Bold</strong> <em>Italic!</em>You could also make it more explicit that the parser is case sensitive by using another helper function.
$bbcode = newGolonka\BBCode\BBCodeParser;
echo$bbcode->parseCaseSensitive('[b]Bold[/b] [I]Italic![/I]');
// <strong>Bold</strong> [I]Italic![/I]If you would like to completely remove all BBCode it's just one function call away.
$bbcode = newGolonka\BBCode\BBCodeParser;
echo$bbcode->stripBBCodeTags('[b]Bold[/b] [i]Italic![/i]');
// Bold Italic!The integration into Laravel is really easy, and the method is the same for both Laravel 4 and Laravel 5.
Just open your app.php config file.
In there you just add this to your providers array
'Golonka\BBCode\BBCodeParserServiceProvider'And this to your facades array
'BBCode' => 'Golonka\BBCode\Facades\BBCodeParser'The syntax is the same as if you would use it in vanilla PHP but with the BBCode:: before the methods.
Here are some examples.
// Simple parsingecho BBCode::parse('[b]Bold Text![/b]');
// Limiting the parsers with the only methodecho BBCode::only('bold', 'italic')
->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]');
// <strong>[u]Bold[/u] <em>Italic</em>!</strong>// Or the except methodecho BBCode::except('bold')
->parse('[b]Bold[/b] [i]Italic[/i]');
// [b]Bold[/b] <em>Italic</em>$ phpunitPlease see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.