The PhpHighlightPlugin pretty-prints PHP code using the php-function:highlight-string.

Usage

You specify options for the plugin on the same line as the <?plugin, and put the code on the following lines, until the final ?>:

<?plugin PhpHighlight [wrap?] [color options]
code to be highlighted
?>

Description

Depending on the wrap option, then the plugin will take care of adding <?php and ?> to the code before passing it to php-function:highlight-string. If the PHP delimiters were added, then the plugin removes them again from the highlighted string, before presenting it.

Options

Automatic Wrapping

If you don't want the plugin to automatically wrap the source code in <?php and ?>, then set wrap to 0. The default value is 1 which means that the plugin takes care of adding and removing <?php and ?> automatically.

If you set wrap to 0, then you'll be able to mix PHP code with HTML. The plugin will then translate '< ?php' into '<?php' and '? >' into '?>' to allow you to start and stop PHP mode in your code.

Color Options

The plugin accepts optional color arguments which correspond to the highlight settings in php.ini. Specified colors must be a valid hexadecimal color or HTML 4 color name in lowercase, such as '#0f0344' or blue. You can set the following options:

string, comment, keyword, bg, default, and html

Examples

PHP with default colors from php.ini:

function hello() {
    echo 
"Hello World<p>";
}

HTML with embedded PHP

Here we have to use wrap=0 to prevent automatic wrapping, and escape '?>' as '? >':

<html>
  <head>
    <title>PHP Test</title>
  </head>
  <body>
    <?php echo "<p>Hello World</p>\n"?>
  </body>
</html>

C Source

Although highlight_string() was designed with PHP code in mind it is suitable for basic syntax-highlighting of most C code because the two syntax are similar.

#include <stdio.h>
/* Get load */
int
getload
(void)
{
    if ((
fp fopen("/proc/loadavg""r")) == NULL) {
        
syslog(LOG_ERR_("%s %s: unable to open %s: %s"), _("FATAL ERROR:"),
              
"getload()""/proc/loadavg"strerror(errno));
        exit(
EX_OSFILE);
    }
    
fclose(fp);
}

Authors

Martin Geisler gimpster@gimpster.com and Carsten Klapp carstenklapp@users.sourceforge.net.