## I. Introduction

[ Next: B. Why BBCode? ]

### A. Overview

#
The New BBCode Parser

Version 2.0.0-alpha1
Copyright © 2008-10, the Phantom Inker. All rights reserved.

The New BBCode Parser (NBBC) is a fully-validating, high-speed, extensible parser for the BBCode document language, written in PHP, compatible with PHP 4.0.5+ and PHP 5. It converts BBCode input into HTML output, and can guarantee that the output will be fully conformant to the XHTML 1.0 Strict standard no matter how badly-mangled the BBCode input is.

What is BBCode? BBCode is a document-formatting language, similar to HTML, only designed to be much simpler to use. BBCode was popularized by various forum and bulletin-board services throughout the late 1990s and early 2000s, and is now a de-facto standard; however, most BBCode parsers, which convert that BBCode into displayable HTML, are non-validating, meaning that they do not guarantee that their output will necessarily be "good" HTML. Some are so over-simplified that they are vulnerable to a number of security attacks. NBBC is designed to be an easy drop-in replacement for most existing BBCode parsers, and is designed to be both validating and secure.

NBBC comes built-in with a number of useful features:

- Output is always XHTML 1.0 Strict conformant.
- Output is protected against many common user-input attacks, such as XSS attacks.
- Smileys, such as `:-)`, are converted into `<img>` tags, and a large library of common smiley images is included.
- Includes a library supporting all the standard BBCode codes found on most popular bulletin boards and web forums.
- Supports "wiki links," which can be an easy way for users to reference wiki pages on your site if you also have a wiki installed.
- The list of codes is fully extensible; you can add and remove codes at any time.
- Tightly encapsulated in classes and doesn't pollute the global namespace, so it's easy to drop into existing environments.
- The entire parser consists of only four files, only one of which you ever need to include directly, which also makes it easy to drop into existing environments.
- The standard library includes support for not only extremely common tags like [b] and [i], but also supports nearly all the tags found on most major forums and bulletin boards: [center], [list], [code], and [quote], among others, with all their various flags and parameters.
- Best of all, it's free! NBBC is covered under the New BSD Open-Source License, so it can be used anywhere, anywhen, in any project, for any reason.

[ Next: B. Why BBCode? ]

Copyright © 2010, the Phantom Inker. All rights reserved.