s9e\TextFormatter is a text formatting library that supports BBCode, Markdown, HTML and other markup via plugins. The library is in PHP, with a JavaScript port also available for client-side preview (see below.)
The best way to install s9e\TextFormatter is via Composer. See Installation.
composer require s9e/text-formatter
You can try the JavaScript version in this BBCodes + other stuff demo, or this Markdown + stuff (Fatdown) demo.
If you can only read one example, read how to use a bundle.
You can run the scripts directly from the examples directory, you can look into the manual for a description of each plugin and other examples.