amarkannas/laravel-bbcode-parser

使用这个库轻松解析bbcode。

该包的官方仓库似乎已消失,因此该包已被冻结。

v1.0.1 2023-01-04 09:34 UTC

This package is auto-updated.

Last update: 2024-02-04 11:50:09 UTC


README

什么是BBCode

BBCode 在维基百科

它是如何工作的?

该包可以将bbcode标签解析为html。

安装

通过Composer

composer require ammarkannas/laravel-bbcode-parser

与Laravel的用法

解析一些文本就像这样简单!

use Ammar\BBCode\Facades\BBCode;

echo BBCode::parse('[b]Text![/b]');
// The result is '<strong>Text!</strong>' 

只解析选定的标签。

echo BBCode::only(['bold', 'italic'])
        ->parse('[b][u]text[/u] [i]text[/i]![/b]');
/**
 * <strong>
 *  [u]Text[/u]
 *  <span style="font-style: italic;">text</span>
 * </strong> 
 */

echo BBCode::only('bold', 'italic')
        ->parse('[b][u]text[/u] [i]text[/i]![/b]');

解析所有标签(除一个或多个外)。

echo BBCode::except('bold')
        ->parse('[b]text[/b] [i]text[/i]');
/**
 * [b]text[/b]
 * <span style="font-style: italic;">text</span> 
 */

大小写敏感 & 不敏感

默认情况下,解析器是大小写敏感的。

# Case insensitive
echo BBCode::parse('[b]Bold[/b] [I]Italic![/I]', true); 

# or other way
echo BBCode::parseCaseInsensitive('[b]Bold[/b] [i]Italic[/i]');

删除或移除所有bbcode标签

BBCode::stripBBCodeTags('[b]Bold[/b] [i]Italic![/i]');

Laravel Blade

@bb('[b]Bold[/b] [i]Italic[/i]') 
{{-- <strong>Bold</strong> <em>Italic</em> --}}

@bbexcept('bold', '[b]Bold[/b] [i]Italic[/i]') 
{{-- [b]Bold[/b] <em>Italic</em> --}}

@bbonly('bold', '[b]Bold[/b] [i]Italic[/i]')
{{-- <strong>Bold</strong> [i]Italic[/i] --}}

扩展或编辑BBCode标签

可以在配置文件中添加自定义bbcode标签

php artisan vendor:publish --provider="Rwxrwx\BBCode\BBCodeServiceProvider" --tag="bbcodes-config"

或者你可以使用添加方法

<?php

namespace App\Providers;

use Ammar\BBCode\Facades\BBCode;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        BBCode::addTag(
            name:    'size',
            //                  $1      $2
            search: '/\[size\=([1-7])\](.*?)\[\/size\]/s',
            replace: '<span style="font-size: $1px;">$2</span>',
            content: '$2' // content param
        );
    }
}

使用

BBCode::parse('[size=2]text[/size] [b]Example[/b]');
BBCode::except('size')->parse('[size=2]text[/size] [b]Example[/b]');
BBCode::only('size')->parse('[size=2]text[/size] [b]Example[/b]');

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件