An open API service indexing awesome lists of open source software.

https://github.com/ivuorinen/bbcodeparser

Parse your BBCode easy with this library.
https://github.com/ivuorinen/bbcodeparser

bbcode bbcode-parser laravel laravel-package parser php

Last synced: 2 months ago
JSON representation

Parse your BBCode easy with this library.

Awesome Lists containing this project

README

          

[![Latest Version](https://img.shields.io/github/release/ivuorinen/bbcodeparser.svg?style=flat-square)](https://github.com/ivuorinen/bbcodeparser/releases)
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)
[![Build Status](https://img.shields.io/travis/ivuorinen/bbcodeparser/master.svg?style=flat-square)](https://travis-ci.org/ivuorinen/bbcodeparser)
[![Coverage Status](https://img.shields.io/scrutinizer/coverage/g/ivuorinen/bbcodeparser/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/ivuorinen/bbcodeparser/code-structure)
[![Quality Score](https://img.shields.io/scrutinizer/g/ivuorinen/bbcodeparser/master.svg?style=flat-square)](https://scrutinizer-ci.com/g/ivuorinen/bbcodeparser)
[![Total Downloads](https://img.shields.io/packagist/dt/ivuorinen/bbcodeparser.svg?style=flat-square)](https://packagist.org/packages/ivuorinen/bbcodeparser)

The `ivuorinen\BBCodeParser` package will help you with parsing BBCode.
This package is build on work by [Joseph Landberg](https://github.com/golonka).

## Install

Via Composer

```
composer require ivuorinen/bbcodeparser
```

## Usage

To parse some text it's as easy as this!

```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();

echo $bbcode->parse('[b]Bold Text![/b]');
// Bold Text!
```

Would like the parser to not use all bbcodes? Just do like this.

```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();

echo $bbcode
->only('bold', 'italic')
->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]'); // [u]Bold[/u] Italic!

echo $bbcode
->except('bold')
->parse('[b]Bold[/b] [i]Italic[/i]'); // [b]Bold[/b] Italic
```

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.

```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();

// Case insensitive
echo $bbcode->parse('[b]Bold[/b] [I]Italic![/I]', true); // Bold Italic!

// Or like this:
echo $bbcode->parseCaseInsensitive('[b]Bold[/b] [i]Italic[/i]'); // Bold Italic!
```

You could also make it more explicit that the parser is case-sensitive by using another helper function.

```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();

echo $bbcode->parseCaseSensitive('[b]Bold[/b] [I]Italic![/I]'); // Bold [I]Italic![/I]
```

If you would like to completely remove all BBCode it's just one function call away.

```php
$bbcode = new ivuorinen\BBCode\BBCodeParser();

echo $bbcode->stripBBCodeTags('[b]Bold[/b] [i]Italic![/i]'); // Bold Italic!
```

## Laravel integration

The integration into Laravel is really easy, and the method is the same for both Laravel 4 and Laravel 5.
This package supports Laravel Package Auto-Discovery, so it should be picked up automatically.

If you don't want auto-discovery, or because of old habits, just open your ``app.php`` config file.

In there you just add this to your providers array

```php
'ivuorinen\BBCode\BBCodeParserServiceProvider'
```

And this to your facades array

```php
'BBCode' => 'ivuorinen\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.

```php
// Simple parsing
echo BBCode::parse('[b]Bold Text![/b]');

// Limiting the parsers with the only method
echo BBCode::only('bold', 'italic')
->parse('[b][u]Bold[/u] [i]Italic[/i]![/b]'); // [u]Bold[/u] Italic!

// Or the except method
echo BBCode::except('bold')
->parse('[b]Bold[/b] [i]Italic[/i]'); // [b]Bold[/b] Italic
```

## Testing

``` bash
composer test
```

## Contributing

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

## Credits

- [Ismo Vuorinen](https://github.com/ivuorinen)
- [Joseph Landberg](https://github.com/golonka)
- [All Contributors](https://github.com/ivuorinen/bbcodeparser/contributors)

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.