FSHL - Fast Syntax Highlighter for PHP 5.3+
PHP JavaScript Python C Java
Failed to load latest commit information.
FSHL Version bump Sep 8, 2012
tests Version bump Sep 8, 2012
.gitattributes Improved composer package Sep 8, 2012
.travis.yml Added Travis configuration Feb 21, 2012
README.md Unified readme with website Aug 24, 2011
build.xml ApiGen renamed --undocumented to --report Nov 13, 2011
composer.json Improved composer package Sep 8, 2012
style.css Version bump Sep 8, 2012


Welcome to FSHL

FSHL is a free, open source, universal, fast syntax highlighter written in PHP. A very fast parser performs syntax highlighting for few languages and produces a HTML output.

FSHL library is a simple, easy to use syntax highlighter. Its API provides only one method that is really need to highlight sources and three auxiliary methods to sets lexer and output mode.

FSHL core is very flexible and it is very easy to add new languages. Feel free to do so and do not forget to share them with the rest of the world.


FSHL should be installed using the PEAR Installer. This installer is the backbone of PEAR, which provides a distribution system for PHP packages, and is shipped with every release of PHP since version 4.3.0.

The PEAR channel that is used to distribute FSHL needs to be registered with the local PEAR environment.

    pear channel-discover pear.kukulich.cz

This has to be done only once. Now the PEAR Installer can be used to install packages from the kukulich channel:

    pear install kukulich/FSHL

After the installation you can find the FSHL source files inside your local PEAR directory.


    $highlighter = new \FSHL\Highlighter(new \FSHL\Output\Html());
    $highlighter->setLexer(new \FSHL\Lexer\Php());
    echo '<pre>';
    echo $highlighter->highlight('<?php echo "Hello world!"; ?>');
    echo '</pre>';


    $highlighter = new \FSHL\Highlighter(new \FSHL\Output\Html(), \FSHL\Highlighter::OPTION_TAB_INDENT | \FSHL\Highlighter::OPTION_LINE_COUNTER);
    echo '<pre>';
    echo $highlighter->highlight('<?php echo "Hello world!"; ?>', new \FSHL\Lexer\Php());
    echo '</pre>';


A nice default stylesheet is located in the style.css file.


FSHL requires PHP 5.3 or later.