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.