定制 cr4zyfl1x/bbcode 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

cr4zyfl1x/bbcode

最新稳定版本:v1.1.4

Composer 安装命令:

composer require cr4zyfl1x/bbcode

包简介

A naive attempt at a BBCode 'parser' written in PHP. It uses regex and thus fails at complex, nested tags.

README 文档

README

GitHub license Version

A library that parses BBCode and converts it to HTML code. Written in PHP.

Installation

Through Composer:

composer require cr4zyfl1x/bbcode

From then on you may run composer update to get the latest version of this library.

It is possible to use this library without using Composer but then it is necessary to register an autoloader function.

This library requires PHP 8.0 or higher.

Usage example

Here is a minimalistic example of PHP code that uses this library. It assumes that there is an autoloader.

$bbcode = new Cr4zyFl1x\BBCode\BBCode();

$rendered = $bbcode->render('[b]Hello world![/b]');

echo $rendered;

Available tags

  • [b]: Font style bold - [b]Hello world[/b]
  • [i]: Font style italic - [i]Hello world[/i]
  • [s]: Font style struck through - [s]Hello world[/s]
  • [u]: Font style underlined - [u]Hello world[/u]
  • [code]: Code - [code]Hello world[/code]
  • [email]: Email (clickable) - [email]test@example.com[/email]
  • [url]: URL (clickable) - [url=http://example.com]Example.com[/url]
  • [img]: Image (not clickable) - [img]http://example.com/example.png[/img]
  • [quote]: Quote - [quote]Hello world[/quote]
  • [youtube]: Embedded YouTube video - [youtube]a-video-id-123456[/youtube]
  • [font]: Font (name) - [font=Arial]Hello world![/font]
  • [size]: Font size - [size=12]Hello world![/size]
  • [color]: Font color - [color=red]Hello world![/color]
  • [left]: Text-align: left - [left]Hello world[/left]
  • [center]: Text-align: center - [center]Hello world[/center]
  • [right]: Text-align: right - [right]Hello world[/right]
  • [spoiler]: Spoiler (pure HTML code that needs JavaScript code to add behaviour) - [spoiler]Hello world[/spoiler]
  • [br]: Line-Break - First Line[br]Second Line
  • [hr]: Horizontal Line - Above Line[hr]Under Line
  • List:
    • [list]: List - [list]...list items...[/list]
    • [*]: List item within a list - [*]Hello world!\r\n[*]Hello moon!
    • [li]: List item within a list (alias) - [li]Hello world!\r\n[/li][li]Hello moon!/[li]
    • Full example: [list][*]Hello world![li]Hello moon![/li][/list]

You can add custom tags with the addTag($name, Closure $closure) method.

Helpful methods

  • renderRaw($text = null): Renders only the text without any tags
  • addTag($name, Closure $closure): Adds a custom tag (with name and a Closure)
  • forgetTag($name): Remove the tag with the given name
  • ignoreTag($name): Add a tag to the array of ignored tags
  • permitTag($name): Remove a tag from the array of ignored tags

The BBCode class also implements the __toString() method, which internally calls the render() method.

Custom tag example

This code will add a [h1] BBCode tag that creates a <h1> HTML tag:

$bbcode->addTag('h1', function($tag, &$html, $openingTag) {
    if ($tag->opening) {
        return '<h1>';
    } else {
        return '</h1>';
    }
});

Multibyte characters

This library supports the use of multibyte characters.

Fork

This repository originally has been forked from chriskonnertz/bbcode.

Status

Status of this repository: Maintained. Create an issue and you will get a response, usually within 48 hours.

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2023-08-25