Date: Tue, 29 Jul 2014 10:42:12 +0000
Mime-Version: 1.0 (Produced by PhpWiki 1.5.0)
Content-Type: application/x-phpwiki;
  pagename=Help%2FPhpHighlightPlugin;
  flags=PAGE_LOCKED%2CEXTERNAL_PAGE;
  charset=UTF-8
Content-Transfer-Encoding: binary

The **~PhpHighlight** [[Help:WikiPlugin|plugin]] pretty-prints PHP code using the
php-function:highlight-string.

== Usage ==

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

{{{
<<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
[[http://www.w3.org/TR/REC-html40/types.html#h-6.5|HTML 4 color name]]
in lowercase, such as ##'#0f0344'## or ##blue##. You can set the
following options: ##string##, ##comment##, ##keyword##, ##bg##, ##default##, and ##html##.

**Note:** ##bg## no longer exists in PHP 5.4.

== Examples ==

=== PHP with default colors from ##php.ini##: ===

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

=== HTML with embedded PHP ===

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

<<PhpHighlight wrap=0 html='#000000' bg='#dddddd'
<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.

<<PhpHighlight default=black string=blue comment=gray keyword=purple
#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);
}
>>

== Known Problems ==
{{{
<<PhpHighlight
    testing[somearray];
    testing~[badworkaround~];
>>
}}}
will swallow "~[somearray~]"

== Authors ==
* [[mailto:gimpster@gimpster.com|Martin Geisler]]
* [[mailto:carstenklapp@users.sourceforge.net|Carsten Klapp]] (added ability to override colors defined in ##php.ini##)

== See Also ==
* [[Help:SyntaxHighlighterPlugin|SyntaxHighlighter]] plugin for highlighting other languages.

<noinclude>
----
[[PhpWikiDocumentation]] [[CategoryWikiPlugin]]
</noinclude>
