| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> |
| <head> |
| <title>GeSHi Documentation 1.0.8.3</title> |
| |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
| <meta name="keywords" content="GeSHi, syntax, highlighter, colorizer, beautifier, code, generic, php, sql, css, html, syntax, highlighting, documentation" /> |
| <meta name="description" content="GeSHi - Generic Syntax Highlighter for PHP. Highlight many languages, including PHP, CSS, HTML, SQL, Java and C for XHTML compliant output using this easy PHP Class. Every aspect of the highlighting is customisable, from colours and other styles to case-sensitivity checking and more. GeSHi - the best syntax highlighter in the world!" /> |
| |
| <style type="text/css"> |
| html { |
| background-color: #e6e6e6; |
| } |
| body { |
| font-family: Verdana, Arial, sans-serif; |
| margin: 10px; |
| border: 2px solid #d0d0d0; |
| background-color: #f6f6f6; |
| padding: 10px; |
| } |
| p, ul, ol, div, blockquote, dt, dd { |
| font-size: 80%; |
| line-height: 140%; |
| letter-spacing: 1px; |
| color: #002; |
| } |
| dt { |
| font-weight: bold; |
| } |
| acronym { |
| border-bottom: 1px dotted #303030; |
| cursor: help; |
| } |
| blockquote { |
| font-weight: bold; |
| } |
| pre, .geshicode { |
| border: 1px solid #c0e6ff; |
| background-color: #e0e8ef; |
| color: #002; |
| margin:0; |
| font-size: 12px; |
| width:100%; |
| } |
| table { |
| border-collapse:collapse; |
| } |
| .geshicode pre { |
| border:none; |
| background-color:inherit; |
| font-weight:bold; |
| } |
| .geshicode .li2 td { |
| background-color:#eee; |
| } |
| .geshicode .li1 td { |
| background-color:#fff; |
| } |
| .geshicode td td { |
| padding:0 2px; |
| } |
| .geshicode td, .geshicode table { |
| width: 100%; |
| } |
| .geshicode td.ln { |
| border-right:2px solid #e0e8ef; |
| } |
| .geshicode .head { |
| text-align:center; |
| font-weight:bold; |
| } |
| code, tt, kbd { |
| font-size: 125%; |
| font-weight:normal; |
| } |
| hr { |
| height: 0; |
| border: none; |
| border-top: 1px dotted #404040; |
| width: 75%; |
| } |
| var { |
| color: blue; font-style: normal; font-family: monospace; |
| } |
| li { |
| padding-top: 2px; |
| } |
| ul ul, ol ol, div ul, div ol { |
| font-size:100%; |
| } |
| .note { |
| border: 1px solid yellow; |
| background-color: #ffc; |
| color: #220; |
| padding: 5px; |
| margin: 1em 0 0 .75em; |
| } |
| .caution { |
| border: 6px double red; |
| background-color: #fcc; |
| color: #200; |
| padding: 5px; |
| margin: 1em 0 0 .75em; |
| } |
| .caution p:first-child, .note p:first-child { |
| margin-top: 0; |
| } |
| .caution-header { |
| border: 1px solid red; |
| border-width: 1px 2px 2px 1px; |
| margin-top: -1.6em; |
| background-color: #fcc; |
| width: 10%; |
| font-weight: bold; |
| text-align: center; |
| color: #600; |
| } |
| .note-header { |
| border: 1px solid #ff0; |
| border-width: 1px 2px 2px 1px; |
| margin-top: -1.2em; |
| background-color: #ffc; |
| width: 10%; |
| font-weight: bold; |
| text-align: center; |
| color: #660; |
| } |
| .nav { |
| font-size: 70%; |
| } |
| .nav a { |
| color: #707070; |
| border: 1px solid #a0a0a0; |
| border-width: 0 1px 1px 1px; |
| border-top: 1px dotted #c0c0c0; |
| text-decoration: none; |
| padding: 1px 2px; |
| background-color: #e0e0e0; |
| -moz-border-radius-bottomleft: 3px; |
| -moz-border-radius-bottomright: 3px; |
| } |
| h1, #contents { |
| margin-top: 0; |
| margin-bottom: 0; |
| text-align: center; |
| color: #404060; |
| } |
| #contents { |
| text-align:left; |
| background:none; |
| border:none; |
| } |
| h2 { |
| border-bottom: 1px dotted #b0b0b0; |
| margin-top: 2em; |
| border-top: 1px dotted #b0b0b0; |
| background-color: #ddd; |
| margin-bottom: 0; |
| } |
| h3 { |
| margin-top: 1.6em; |
| border-bottom: 1px dotted #c0c0c0; |
| margin-bottom: 0; |
| } |
| h4 { |
| border-bottom: 1px dotted #d0d0d0; |
| margin-top: 1.2em; |
| margin-bottom: 0; |
| } |
| h2, h3, h4 { |
| color: #707070; |
| font-weight: normal; |
| } |
| a { |
| color: #7777ff; |
| } |
| sup a { |
| text-decoration: none; |
| } |
| abbr { |
| cursor: help; |
| } |
| .header p { |
| text-align: center; |
| border-bottom: 1px dotted #d0d0d0; |
| } |
| |
| .header dl { |
| background-color: #e0e8ef; |
| color: #002; |
| padding: 5px; |
| } |
| |
| .header img { |
| float: right; |
| margin:2.5em 1em 0 0; |
| } |
| |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for bash |
| * CSS class: , CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann |
| * (http://qbnz.com/highlighter/ and http://geshi.org/) |
| * -------------------------------------- |
| */ |
| .bash .de1, .bash .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;} |
| .bash {font-family:monospace;} |
| .bash .imp {font-weight: bold; color: red;} |
| .bash li, .bash .li1 {font-weight: normal; vertical-align:top;} |
| .bash .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;} |
| .bash .li2 {font-weight: bold; vertical-align:top;} |
| .bash .kw1 {color: #000000; font-weight: bold;} |
| .bash .kw2 {color: #c20cb9; font-weight: bold;} |
| .bash .kw3 {color: #7a0874; font-weight: bold;} |
| .bash .co0 {color: #666666; font-style: italic;} |
| .bash .co1 {color: #800000;} |
| .bash .co2 {color: #cc0000; font-style: italic;} |
| .bash .co3 {color: #000000; font-weight: bold;} |
| .bash .es1 {color: #000099; font-weight: bold;} |
| .bash .es2 {color: #007800;} |
| .bash .es3 {color: #007800;} |
| .bash .es4 {color: #007800;} |
| .bash .es5 {color: #780078;} |
| .bash .es_h {color: #000099; font-weight: bold;} |
| .bash .br0 {color: #7a0874; font-weight: bold;} |
| .bash .sy0 {color: #000000; font-weight: bold;} |
| .bash .st0 {color: #ff0000;} |
| .bash .st_h {color: #ff0000;} |
| .bash .nu0 {color: #000000;} |
| .bash .re0 {color: #007800;} |
| .bash .re1 {color: #007800;} |
| .bash .re2 {color: #007800;} |
| .bash .re4 {color: #007800;} |
| .bash .re5 {color: #660033;} |
| .bash .ln-xtra, .bash li.ln-xtra, .bash div.ln-xtra {background-color: #ffc;} |
| .bash span.xtra { display:block; } |
| |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for php |
| * CSS class: , CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann |
| * (http://qbnz.com/highlighter/ and http://geshi.org/) |
| * -------------------------------------- |
| */ |
| .php .de1, .php .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;} |
| .php {font-family:monospace;} |
| .php .imp {font-weight: bold; color: red;} |
| .php li, .php .li1 {font-weight: normal; vertical-align:top;} |
| .php .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;} |
| .php .li2 {font-weight: bold; vertical-align:top;} |
| .php .kw1 {color: #b1b100;} |
| .php .kw2 {color: #000000; font-weight: bold;} |
| .php .kw3 {color: #990000;} |
| .php .kw4 {color: #009900; font-weight: bold;} |
| .php .co1 {color: #666666; font-style: italic;} |
| .php .co2 {color: #666666; font-style: italic;} |
| .php .co3 {color: #0000cc; font-style: italic;} |
| .php .co4 {color: #009933; font-style: italic;} |
| .php .coMULTI {color: #666666; font-style: italic;} |
| .php .es0 {color: #000099; font-weight: bold;} |
| .php .es1 {color: #000099; font-weight: bold;} |
| .php .es2 {color: #660099; font-weight: bold;} |
| .php .es3 {color: #660099; font-weight: bold;} |
| .php .es4 {color: #006699; font-weight: bold;} |
| .php .es5 {color: #006699; font-weight: bold; font-style: italic;} |
| .php .es6 {color: #009933; font-weight: bold;} |
| .php .es_h {color: #000099; font-weight: bold;} |
| .php .br0 {color: #009900;} |
| .php .sy0 {color: #339933;} |
| .php .sy1 {color: #000000; font-weight: bold;} |
| .php .st0 {color: #0000ff;} |
| .php .st_h {color: #0000ff;} |
| .php .nu0 {color: #cc66cc;} |
| .php .nu8 {color: #208080;} |
| .php .nu12 {color: #208080;} |
| .php .nu19 {color:#800080;} |
| .php .me1 {color: #004000;} |
| .php .me2 {color: #004000;} |
| .php .re0 {color: #000088;} |
| .php .ln-xtra, .php li.ln-xtra, .php div.ln-xtra {background-color: #ffc;} |
| .php span.xtra { display:block; } |
| |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for html4strict |
| * CSS class: , CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann |
| * (http://qbnz.com/highlighter/ and http://geshi.org/) |
| * -------------------------------------- |
| */ |
| .html4strict .de1, .html4strict .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;} |
| .html4strict {font-family:monospace;} |
| .html4strict .imp {font-weight: bold; color: red;} |
| .html4strict li, .html4strict .li1 {font-weight: normal; vertical-align:top;} |
| .html4strict .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;} |
| .html4strict .li2 {font-weight: bold; vertical-align:top;} |
| .html4strict .kw2 {color: #000000; font-weight: bold;} |
| .html4strict .kw3 {color: #000066;} |
| .html4strict .es0 {color: #000099; font-weight: bold;} |
| .html4strict .br0 {color: #66cc66;} |
| .html4strict .sy0 {color: #66cc66;} |
| .html4strict .st0 {color: #ff0000;} |
| .html4strict .nu0 {color: #cc66cc;} |
| .html4strict .sc-1 {color: #808080; font-style: italic;} |
| .html4strict .sc0 {color: #00bbdd;} |
| .html4strict .sc1 {color: #ddbb00;} |
| .html4strict .sc2 {color: #009900;} |
| .html4strict .ln-xtra, .html4strict li.ln-xtra, .html4strict div.ln-xtra {background-color: #ffc;} |
| .html4strict span.xtra { display:block; } |
| |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for css |
| * CSS class: , CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann |
| * (http://qbnz.com/highlighter/ and http://geshi.org/) |
| * -------------------------------------- |
| */ |
| .css .de1, .css .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;} |
| .css {font-family:monospace;} |
| .css .imp {font-weight: bold; color: red;} |
| .css li, .css .li1 {font-weight: normal; vertical-align:top;} |
| .css .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;} |
| .css .li2 {font-weight: bold; vertical-align:top;} |
| .css .kw1 {color: #000000; font-weight: bold;} |
| .css .kw2 {color: #993333;} |
| .css .co1 {color: #a1a100;} |
| .css .co2 {color: #ff0000; font-style: italic;} |
| .css .coMULTI {color: #808080; font-style: italic;} |
| .css .es0 {color: #000099; font-weight: bold;} |
| .css .br0 {color: #00AA00;} |
| .css .sy0 {color: #00AA00;} |
| .css .st0 {color: #ff0000;} |
| .css .nu0 {color: #cc66cc;} |
| .css .re0 {color: #cc00cc;} |
| .css .re1 {color: #6666ff;} |
| .css .re2 {color: #3333ff;} |
| .css .re3 {color: #933;} |
| .css .ln-xtra, .css li.ln-xtra, .css div.ln-xtra {background-color: #ffc;} |
| .css span.xtra { display:block; } |
| |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for java |
| * CSS class: , CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann |
| * (http://qbnz.com/highlighter/ and http://geshi.org/) |
| * -------------------------------------- |
| */ |
| .java .de1, .java .de2 {font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;} |
| .java {font-family:monospace;} |
| .java .imp {font-weight: bold; color: red;} |
| .java li, .java .li1 {font-weight: normal; vertical-align:top;} |
| .java .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;} |
| .java .li2 {font-weight: bold; vertical-align:top;} |
| .java .kw1 {color: #000000; font-weight: bold;} |
| .java .kw2 {color: #000066; font-weight: bold;} |
| .java .kw3 {color: #003399;} |
| .java .kw4 {color: #000066; font-weight: bold;} |
| .java .co1 {color: #666666; font-style: italic;} |
| .java .co2 {color: #006699;} |
| .java .co3 {color: #008000; font-style: italic; font-weight: bold;} |
| .java .coMULTI {color: #666666; font-style: italic;} |
| .java .es0 {color: #000099; font-weight: bold;} |
| .java .br0 {color: #009900;} |
| .java .sy0 {color: #339933;} |
| .java .st0 {color: #0000ff;} |
| .java .nu0 {color: #cc66cc;} |
| .java .me1 {color: #006633;} |
| .java .me2 {color: #006633;} |
| .java .ln-xtra, .java li.ln-xtra, .java div.ln-xtra {background-color: #ffc;} |
| .java span.xtra { display:block; } |
| |
| |
| </style> |
| </head> |
| <body> |
| <h1 id="top"><abbr title="Generic Syntax Highlighter">GeSHi</abbr> Documentation</h1> |
| |
| <div class="header"> |
| |
| <p>Version 1.0.8.3</p> |
| |
| <p><img src="http://qbnz.com/highlighter/images/geshi.png" alt="The GeSHi Logo" /></p> |
| |
| <dl> |
| <dt>Authors:</dt> |
| <dd>© 2004 - 2007 <a href="mailto:nigel@geshi.org">Nigel McNie</a></dd> |
| |
| <dd>© 2007 - 2009 <a href="mailto:BenBE@omorphia.de">Benny Baumann</a></dd> |
| |
| <dd>© 2008 - 2009 <a href="mailto:mail@milianw.de">Milian Wolff</a></dd> |
| |
| <dt><abbr title="Generic Syntax Highlighter">GeSHi</abbr> Website:</dt> |
| <dd><a href="http://qbnz.com/highlighter">http://qbnz.com/highlighter</a></dd> |
| </dl> |
| |
| </div> |
| |
| <p>This is the documentation for <abbr title="Generic Syntax Highlighter">GeSHi</abbr> - Generic Syntax Highlighter.</p> |
| |
| <p>The most modern version of this document is available on the web - |
| go to <a href="http://qbnz.com/highlighter/documentation.php">http://qbnz.com/highlighter/documentation.php</a> to view it.</p> |
| |
| <p>Any comments, questions, confusing points? Please <a href="#feedback">get in contact</a> with the developers! We |
| need all the information we can get to make the use of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> and everything related to it (including this documentation) |
| a breeze.</p> |
| |
| <h2 id="contents">Contents</h2> |
| |
| <div id="toc"><ul> |
| <li><a href="#introduction">1 Introduction</a><ul> |
| <li><a href="#features">1.1 Features</a></li> |
| <li><a href="#about-geshi">1.2 About <abbr title="Generic Syntax Highlighter">GeSHi</abbr></a></li> |
| <li><a href="#credits">1.3 Credits</a></li> |
| <li><a href="#feedback">1.4 Feedback</a></li> |
| </ul></li> |
| <li><a href="#the-basics">2 The Basics</a><ul> |
| <li><a href="#getting-geshi">2.1 Getting <abbr title="Generic Syntax Highlighter">GeSHi</abbr> work</a><ul> |
| <li><a href="#requirements">2.1.1 Requirements</a></li> |
| <li><a href="#downloading-geshi">2.1.2 Downloading <abbr title="Generic Syntax Highlighter">GeSHi</abbr></a></li> |
| <li><a href="#extracting-geshi">2.1.3 Extracting <abbr title="Generic Syntax Highlighter">GeSHi</abbr></a></li> |
| <li><a href="#installing-geshi">2.1.4 Installing <abbr title="Generic Syntax Highlighter">GeSHi</abbr></a></li> |
| </ul></li> |
| <li><a href="#basic-usage">2.2 Basic Usage</a></li> |
| </ul></li> |
| <li><a href="#advanced-features">3 Advanced Features</a><ul> |
| <li><a href="#the-code-container">3.1 The Code Container</a></li> |
| <li><a href="#line-numbers">3.2 Line Numbers</a><ul> |
| <li><a href="#enabling-line-numbers">3.2.1 Enabling Line Numbers</a></li> |
| <li><a href="#styling-line-numbers">3.2.2 Styling Line Numbers</a></li> |
| <li><a href="#starting-line-numbers">3.2.3 Choosing a Start Number</a></li> |
| </ul></li> |
| <li><a href="#using-css-classes">3.3 Using <abbr title="Cascading Style Sheets">CSS</abbr> Classes</a><ul> |
| <li><a href="#enabling-css-classes">3.3.1 Enabling <abbr title="Cascading Style Sheets">CSS</abbr> Classes</a></li> |
| <li><a href="#setting-css-class-id">3.3.2 Setting the <abbr title="Cascading Style Sheets">CSS</abbr> class and ID</a></li> |
| <li><a href="#getting-stylesheet">3.3.3 Getting the stylesheet for your code</a></li> |
| <li><a href="#using-an-external-stylesheet">3.3.4 Using an External Stylesheet</a></li> |
| </ul></li> |
| <li><a href="#changing-styles">3.4 Changing Styles</a><ul> |
| <li><a href="#the-overall-styles">3.4.1 The Overall Styles</a></li> |
| <li><a href="#line-number-styles">3.4.2 Line Number Styles</a></li> |
| <li><a href="#setting-keyword-styles">3.4.3 Setting Keyword Styles</a></li> |
| <li><a href="#setting-comment-styles">3.4.4 Setting Comment Styles</a></li> |
| <li><a href="#setting-other-styles">3.4.5 Setting Other Styles</a></li> |
| </ul></li> |
| <li><a href="#case-caps">3.5 Case Sensitivity and Auto Casing</a><ul> |
| <li><a href="#auto-caps-nocaps">3.5.1 Auto-Caps/NoCaps</a></li> |
| <li><a href="#setting-case-sensitivity">3.5.2 Setting Case Sensitivity</a></li> |
| </ul></li> |
| <li><a href="#changing-config">3.6 Changing the Source, Language, Config Options</a><ul> |
| <li><a href="#changing-the-source">3.6.1 Changing the Source Code</a></li> |
| <li><a href="#changing-the-language">3.6.2 Changing the Language</a></li> |
| <li><a href="#changing-the-path">3.6.3 Changing the Language Path</a></li> |
| <li><a href="#changing-the-charset">3.6.4 Changing the Character Set</a></li> |
| </ul></li> |
| <li><a href="#error-handling">3.7 Error Handling</a></li> |
| <li><a href="#disabling-lexics">3.8 Disabling styling of some Lexics</a></li> |
| <li><a href="#setting-tab-width">3.9 Setting the Tab Width</a></li> |
| <li><a href="#using-strict-mode">3.10 Using Strict Mode</a></li> |
| <li><a href="#adding-removing-keywords">3.11 Adding/Removing Keywords</a><ul> |
| <li><a href="#adding-a-keyword">3.11.1 Adding a Keyword</a></li> |
| <li><a href="#removing-a-keyword">3.11.2 Removing a Keyword</a></li> |
| <li><a href="#adding-a-keyword-group">3.11.3 Adding a Keyword Group</a></li> |
| <li><a href="#removing-a-keyword-group">3.11.4 Removing a Keyword Group</a></li> |
| </ul></li> |
| <li><a href="#headers-and-footers">3.12 Headers and Footers for Your Code</a><ul> |
| <li><a href="#keyword-substitution">3.12.1 Keyword Substitution</a></li> |
| <li><a href="#setting-header-content">3.12.2 Setting Header Content</a></li> |
| <li><a href="#setting-footer-content">3.12.3 Setting Footer Content</a></li> |
| <li><a href="#styling-header-content">3.12.4 Styling Header Content</a></li> |
| <li><a href="#styling-footer-content">3.12.5 Styling Footer Content</a></li> |
| </ul></li> |
| <li><a href="#keyword-urls">3.13 Keyword URLs</a><ul> |
| <li><a href="#setting-a-url">3.13.1 Setting a URL for a Keyword Group</a></li> |
| <li><a href="#disabling-urls">3.13.2 Disabling a URL for a Keyword Group</a></li> |
| <li><a href="#disabling-all-urls">3.13.3 Disabling all URLs for Keywords</a></li> |
| <li><a href="#styling-links">3.13.4 Styling Links</a></li> |
| <li><a href="#using-targets">3.13.5 Setting the Link Target</a></li> |
| </ul></li> |
| <li><a href="#using-contextual-importance">3.14 Using Contextual Importance</a></li> |
| <li><a href="#highlighting-special-lines-extra">3.15 Highlighting Special Lines “Extra”</a><ul> |
| <li><a href="#specifying-lines-to-highlight-extra">3.15.1 Specifying the Lines to Highlight Extra</a></li> |
| <li><a href="#styles-for-highlighted-lines">3.15.2 Styles for the Highlighted Lines</a></li> |
| </ul></li> |
| <li><a href="#adding-ids-to-each-line">3.16 Adding IDs to Each Line</a></li> |
| <li><a href="#getting-the-time-of-styling">3.17 Getting the Time of Styling</a></li> |
| </ul></li> |
| <li><a href="#language-files">4 Language Files</a><ul> |
| <li><a href="#language-file-example">4.1 An Example Language File</a></li> |
| <li><a href="#language-file-conventions">4.2 Language File Conventions</a></li> |
| <li><a href="#language-file-sections">4.3 Language File Sections</a><ul> |
| <li><a href="#language-file-header">4.3.1 The Header</a></li> |
| <li><a href="#language-file-start-indices">4.3.2 The First Indices</a></li> |
| <li><a href="#language-file-keywords">4.3.3 Keywords</a></li> |
| <li><a href="#language-file-symbols-case">4.3.4 Symbols and Case Sensitivity</a></li> |
| <li><a href="#language-file-styles">4.3.5 Styles for your Language File</a></li> |
| <li><a href="#language-file-urls">4.3.6 URLs for Functions</a></li> |
| <li><a href="#language-file-numbers-support">4.3.7 Number Highlighting Support</a></li> |
| <li><a href="#language-file-oo-support">4.3.8 Object Orientation Support</a></li> |
| <li><a href="#language-file-regexps">4.3.9 Using Regular Expressions</a></li> |
| <li><a href="#language-file-strict-mode">4.3.10 Contextual Highlighting and Strict Mode</a></li> |
| <li><a href="#language-file-parser-control">4.3.11 Special Parser Settings (Experimental)</a></li> |
| <li><a href="#language-file-tidying-up">4.3.12 Tidying Up</a></li> |
| </ul></li> |
| <li><a href="#lang-validation">4.4 Validating your language file</a></li> |
| </ul></li> |
| <li><a href="#method-constant-reference">5 Method/Constant Reference</a></li> |
| </ul> |
| </div> |
| |
| <h2 id="introduction">1 Introduction</h2><div class="nav"><a href="#features">Next</a></div> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> is exactly what the acronym stands for: a <strong>Generic Syntax Highlighter</strong>. As long |
| as you have a language file for almost any computer language - whether it be a |
| scripting language, object orientated, markup or anything in between - <abbr title="Generic Syntax Highlighter">GeSHi</abbr> can |
| highlight it! <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is extremely customisable - the same source can be highlighted |
| multiple times in multiple ways - the same source even with a different language. |
| <abbr title="Generic Syntax Highlighter">GeSHi</abbr> outputs XHTML strict compliant code<sup id="fnref:xhtml-strict"><a href="#fn:xhtml-strict" rel="footnote">1</a></sup>, and can |
| make use of <abbr title="Cascading Style Sheets">CSS</abbr> to save on the amount of output. And what is the cost for all of this? You need |
| <a href="http://php.net"><abbr title="PHP: HTML Preprocessor">PHP</abbr></a>. That’s all!</p> |
| |
| <h3 id="features">1.1 Features</h3><div class="nav"><a href="#introduction">Previous</a> | <a href="#introduction">Top</a> | <a href="#about-geshi">Next</a></div> |
| |
| <p>Here are some of the standout features of <abbr title="Generic Syntax Highlighter">GeSHi</abbr>:</p> |
| |
| <dl> |
| <dt>Programmed in <abbr title="PHP: HTML Preprocessor">PHP</abbr>:</dt> |
| <dd><abbr title="Generic Syntax Highlighter">GeSHi</abbr> is coded entirely in <abbr title="PHP: HTML Preprocessor">PHP</abbr>. This means that where ever you have <abbr title="PHP: HTML Preprocessor">PHP</abbr>, you |
| can have <abbr title="Generic Syntax Highlighter">GeSHi</abbr>! Almost any free webhost supports <abbr title="PHP: HTML Preprocessor">PHP</abbr>, and <abbr title="Generic Syntax Highlighter">GeSHi</abbr> works fine with <abbr title="PHP: HTML Preprocessor">PHP</abbr> > 4.3.0<sup id="fnref:php-version-note"><a href="#fn:php-version-note" rel="footnote">2</a></sup>.</dd> |
| |
| <dt>Support for many languages:</dt> |
| <dd><abbr title="Generic Syntax Highlighter">GeSHi</abbr> comes with more than <em>100</em> languages, including <abbr title="PHP: HTML Preprocessor">PHP</abbr>, <abbr title="Hypertext Markup Language">HTML</abbr>, <abbr title="Cascading Style Sheets">CSS</abbr>, Java, C, Lisp, <abbr title="Extensible Markup Language">XML</abbr>, Perl, Python, |
| <abbr title="Assembly language">ASM</abbr> and many more!</dd> |
| |
| <dt>XHTML compliant output:</dt> |
| <dd><abbr title="Generic Syntax Highlighter">GeSHi</abbr> produces XHTML compliant output, using stylesheets, so you need not worry about |
| <abbr title="Generic Syntax Highlighter">GeSHi</abbr> ruining your claims to perfection in the standards department ;)</dd> |
| |
| <dt>Highly customisable:</dt> |
| <dd><abbr title="Generic Syntax Highlighter">GeSHi</abbr> allows you to change the style of the output on the fly, use <abbr title="Cascading Style Sheets">CSS</abbr> classes or not, use an external |
| stylesheet or not, use line numbering, change the case of output keywords… the list goes on and on!</dd> |
| |
| <dt>Flexible:</dt> |
| <dd>Unfortunately, <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is quite load/time intensive for large blocks of code. However, you want speed? |
| Turn off any features you don’t like, pre-make a stylesheet and use <abbr title="Cascading Style Sheets">CSS</abbr> classes to reduce the amount of output and more - |
| it’s easy to strike a balance that suits you.</dd> |
| </dl> |
| |
| <p>This is just a taste of what you get with <abbr title="Generic Syntax Highlighter">GeSHi</abbr> - the best syntax highlighter for the web in the world!</p> |
| |
| <h3 id="about-geshi">1.2 About <abbr title="Generic Syntax Highlighter">GeSHi</abbr></h3><div class="nav"><a href="#features">Previous</a> | <a href="#introduction">Top</a> | <a href="#credits">Next</a></div> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> started as a mod for the <a href="http://phpbb.net"><abbr title="PHP Burning Board">phpBB</abbr></a> forum system, to enable highlighting of more |
| languages than the available (which can be roughly estimated to exactly 0 ;)). However, it quickly spawned into an |
| entire project on its own. But now it has been released, work continues on a mod |
| for phpBB<sup id="fnref:phpbb-note"><a href="#fn:phpbb-note" rel="footnote">3</a></sup> - and hopefully for many forum systems, blogs and other web-based systems.</p> |
| |
| <p>Several systems are using <abbr title="Generic Syntax Highlighter">GeSHi</abbr> now, including:</p> |
| |
| <ul> |
| <li><a href="http://www.splitbrain.org/docuwiki/">Dokuwiki</a> - An advanced wiki engine</li> |
| <li><a href="http://gtk.php.net/">gtk.php.net</a> - Their manual uses <abbr title="Generic Syntax Highlighter">GeSHi</abbr> for syntax highlighting</li> |
| <li><a href="http://www.wordpress.org/">WordPress</a> - A powerful blogging system<sup id="fnref:plugin-only"><a href="#fn:plugin-only" rel="footnote">4</a></sup></li> |
| <li><a href="http://www.php-fusion.co.uk/"><abbr title="PHP: HTML Preprocessor">PHP</abbr>-Fusion</a> - A constantly evolving CMS</li> |
| <li><a href="http://cypreess.dione.cc/sqlm">SQL Manager</a> - A Postgres DBAL</li> |
| <li><a href="http://www.mamboserver.com/">Mambo</a> - A popular open source CMS</li> |
| <li><a href="http://www.mediawiki.org/">MediaWiki</a> - A leader in Wikis[^plugin-only]</li> |
| <li><a href="http://www.tikiwiki.org/">TikiWiki</a> - A megapowerful Wiki/CMS</li> |
| <li><a href="http://www.tikipro.org/">TikiPro</a> - Another powerful Wiki based on TikiWiki</li> |
| <li><a href="http://www.wikkawiki.org/">WikkaWiki</a> - A flexible and lightweight Wiki engine</li> |
| <li><a href="http://robloach.net/projects/phpscripts/rweb/">RWeb</a> - A site-building tool</li> |
| </ul> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> is the original work of <a href="mailto:nigel@geshi.org">Nigel McNie</a>. The project was later handed over to <a href="mailto:BenBE@omorphia.de">Benny Baumann</a>. |
| Others have helped with aspects of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> also, they’re mentioned in the <a href="THANKS"><code>THANKS</code></a> file.</p> |
| |
| <h3 id="credits">1.3 Credits</h3><div class="nav"><a href="#about-geshi">Previous</a> | <a href="#introduction">Top</a> | <a href="#feedback">Next</a></div> |
| |
| <p>Many people have helped out with <abbr title="Generic Syntax Highlighter">GeSHi</abbr>, whether by creating language files, submitting bug |
| reports, suggesting new ideas or simply pointing out a new idea or something I’d missed. All |
| of these people have helped to build a better <abbr title="Generic Syntax Highlighter">GeSHi</abbr>, you can see them in the <a href="THANKS"><code>THANKS</code></a> |
| file.</p> |
| |
| <p>Do you want your name on this list? Why not make a language file, or submit a valid bug? Or perhaps help me with an |
| added feature I can’t get my head around, or suggest a new feature, or even port |
| <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to anothe language? There’s lots you can do to help out, and I need it all :)</p> |
| |
| <h3 id="feedback">1.4 Feedback</h3><div class="nav"><a href="#credits">Previous</a> | <a href="#introduction">Top</a> | <a href="#the-basics">Next</a></div> |
| |
| <p>I need your feedback! <em>ANY</em>thing you have to say is fine, whether it be a query, |
| congratulations, a bug report or complaint, I don’t care! I want to make this software |
| the best it can be, and I need your help! You can contact me in the following ways:</p> |
| |
| <ul> |
| <li><strong>E-mail:</strong> <a href="mailto:nigel@geshi.org">Nigel McNie</a>, <a href="mailto:BenBE@omorphia.de">Benny Baumann</a> or better yet: use the <a href="http://lists.sourceforge.net/mailman/listinfo/geshi-users">geshi-users</a> mailinglist</li> |
| <li><strong>Forums:</strong> <a href="http://sourceforge.net/forum?group_id=114997">Sourceforge.net Forums</a></li> |
| <li><strong>IRC:</strong> <a href="irc://irc.freenode.net/geshi">#geshi</a> on <a href="http://freenode.net">Freenode</a></li> |
| </ul> |
| |
| <p>Remember, any help I am grateful for :)</p> |
| |
| <h2 id="the-basics">2 The Basics</h2><div class="nav"><a href="#feedback">Previous</a> | <a href="#getting-geshi">Next</a></div> |
| |
| <p>In this section, you’ll learn a bit about <abbr title="Generic Syntax Highlighter">GeSHi</abbr>, how it works and what it uses, how to install it and how to use |
| it to perform basic highlighting.</p> |
| |
| <h3 id="getting-geshi">2.1 Getting <abbr title="Generic Syntax Highlighter">GeSHi</abbr> work</h3><div class="nav"><a href="#the-basics">Previous</a> | <a href="#the-basics">Top</a> | <a href="#requirements">Next</a></div> |
| |
| <p>If you’re reading this and don’t have <abbr title="Generic Syntax Highlighter">GeSHi</abbr>, that’s a problem ;). So, how do you get your hands on it?</p> |
| |
| <h4 id="requirements">2.1.1 Requirements</h4><div class="nav"><a href="#getting-geshi">Previous</a> | <a href="#getting-geshi">Top</a> | <a href="#downloading-geshi">Next</a></div> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> requires the following to be installable:</p> |
| |
| <ul> |
| <li><strong><a href="http://php.net"><abbr title="PHP: HTML Preprocessor">PHP</abbr></a></strong>. It’s untested with anything other below 4.4.X. I hope to extend this range soon. I see no reason why |
| it won’t work with any version of <abbr title="PHP: HTML Preprocessor">PHP</abbr> above 4.3.0.</li> |
| <li><strong>Approximately 2 megabytes of space</strong>. The actual script is small - around 150K - but most of the size comes |
| from the large number of language files (over 100!). If you’re pushed for space, make sure you don’t upload to |
| your server the <code>docs/</code> or <code>contrib/</code> directory, and you may want to leave out any language files that don’t |
| take your fancy either.</li> |
| </ul> |
| |
| <p>As you can see, the requirements are very small. If <abbr title="Generic Syntax Highlighter">GeSHi</abbr> does NOT work for you in a particular version of <abbr title="PHP: HTML Preprocessor">PHP</abbr>, let |
| me know why and I’ll fix it.</p> |
| |
| <h4 id="downloading-geshi">2.1.2 Downloading <abbr title="Generic Syntax Highlighter">GeSHi</abbr></h4><div class="nav"><a href="#requirements">Previous</a> | <a href="#getting-geshi">Top</a> | <a href="#extracting-geshi">Next</a></div> |
| |
| <p>There are several ways to get a copy of <abbr title="Generic Syntax Highlighter">GeSHi</abbr>. The first and easiest way of all is |
| visiting <a href="http://qbnz.com/highlighter/downloads.php">http://qbnz.com/highlighter/downloads.php</a> to obtain the latest version. |
| This is suitable especially when you plan on using <abbr title="Generic Syntax Highlighter">GeSHi</abbr> on an production website |
| or otherwise need a stable copy for flawless operation.</p> |
| |
| <p>If you are somewhat more sophisticated or need a feature just recently implemented |
| you might consider getting <abbr title="Generic Syntax Highlighter">GeSHi</abbr> by downloading via SVN. There are multiple ways |
| for doing so and each one has its own advantages and disadvantages. Let’s cover |
| the various locations in the SVN you might download from:</p> |
| |
| <ul> |
| <li><a href="https://geshi.svn.sourceforge.net/svnroot/geshi/tags/">https://geshi.svn.sourceforge.net/svnroot/geshi/tags/</a>:<br /> |
| This directory holds all previous releases of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> each as a subdirectory. By downloading from here you can test your code with various old versions |
| in case something has been broken recently.</li> |
| <li><a href="https://geshi.svn.sourceforge.net/svnroot/geshi/branches/RELEASE_1_0_X_STABLE/geshi-1.0.X/src/">https://geshi.svn.sourceforge.net/svnroot/geshi/branches/RELEASE_1_0_X_STABLE/geshi-1.0.X/src/</a>:<br /> |
| This directory is the right place for you if you want to have reasonably current versions of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> but need something that is stable. This directory |
| is updated once in a while between updates whenever there’s something new but which is already reasonably stable. This branch is used to form the |
| actual release once the work is done.</li> |
| <li><a href="https://geshi.svn.sourceforge.net/svnroot/geshi/trunk/geshi-1.0.X/src/">https://geshi.svn.sourceforge.net/svnroot/geshi/trunk/geshi-1.0.X/src/</a>:<br /> |
| This directory is the working directory where every new feature, patch or improvement is committed to. This directory is updated regularly, but is not |
| guaranteed to be tested and stable at all times. With this version you’ll always get the latest version of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> out there, but beware of bugs! There |
| will be loads of them here! So this is absolutely <strong>not recommended</strong> for productive use!</li> |
| </ul> |
| |
| <p>If you have choosen the right SVN directory for you do a quick |
| <code class="highlighted bash"><span class="kw2">svn</span> <span class="kw2">co</span> <span class="re1">$SVNPATH</span> geshi</code> where <code class="highlighted bash"><span class="re1">$SVNPATH</span></code> is one of the above paths and your desired version of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> will be |
| downloaded into an subdirectory called “geshi”. If you got a version of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> |
| you can go on installing as shown below.</p> |
| |
| <h4 id="extracting-geshi">2.1.3 Extracting <abbr title="Generic Syntax Highlighter">GeSHi</abbr></h4><div class="nav"><a href="#downloading-geshi">Previous</a> | <a href="#getting-geshi">Top</a> | <a href="#installing-geshi">Next</a></div> |
| |
| <p>Packages come in <code>.zip</code>, <code>.tar.gz</code> and <code>.tar.bz2</code> format, so there’s no complaining about whether it’s available for |
| you. *nix users probably want <code>.tar.gz</code> or <code>.tar.bz2</code> and windows users probably want <code>.zip</code>. |
| And those lucky to download it directly from SVN don’t even need to bother extracting <abbr title="Generic Syntax Highlighter">GeSHi</abbr>.</p> |
| |
| <p>To extract <abbr title="Generic Syntax Highlighter">GeSHi</abbr> in Linux (<code>.tar.gz</code>):</p> |
| |
| <ol> |
| <li>Open a shell</li> |
| <li><code class="highlighted bash"><span class="kw3">cd</span></code> to the directory where the archive lies</li> |
| <li>Type <code class="highlighted bash"><span class="kw2">tar</span> <span class="re5">-xzvf</span> <span class="br0">[</span>filename<span class="br0">]</span></code> where <code>[filename]</code> is the name of the archive (typically <code>GeSHi-1.X.X.tar.gz</code>)</li> |
| <li><abbr title="Generic Syntax Highlighter">GeSHi</abbr> will be extracted to its own directory</li> |
| </ol> |
| |
| <p>To extract <abbr title="Generic Syntax Highlighter">GeSHi</abbr> in Windows (<code>.zip</code>):</p> |
| |
| <ol> |
| <li>Open Explorer</li> |
| <li>Navigate to the directory where the archive lies</li> |
| <li>Extract the archive. The method you use will depend on your configuration. Some people can right-click upon |
| the archive and select “Extract” from there, others may have to drag the archive and drop it upon an extraction program.</li> |
| </ol> |
| |
| <p>To extract from <code>.zip</code> you’ll need an unzipping program - <code class="highlighted bash"><span class="kw2">unzip</span></code> in Linux, or 7-Zip, WinZip, WinRAR or similar for Windows.</p> |
| |
| <h4 id="installing-geshi">2.1.4 Installing <abbr title="Generic Syntax Highlighter">GeSHi</abbr></h4><div class="nav"><a href="#extracting-geshi">Previous</a> | <a href="#getting-geshi">Top</a> | <a href="#basic-usage">Next</a></div> |
| |
| <p>Installing <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is a snap, even for those most new to <abbr title="PHP: HTML Preprocessor">PHP</abbr>. There’s no tricks involved. Honest!</p> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> is nothing more than a <abbr title="PHP: HTML Preprocessor">PHP</abbr> class with related language support files. Those of you familiar with <abbr title="PHP: HTML Preprocessor">PHP</abbr> can then |
| guess how easy the installation will be: simply copy it into your include path somewhere. You can put it wherever you |
| like in this include path. I recommend that you put the language files in a subdirectory of your include path too - |
| perhaps the same subdirectory that geshi.php is in. <strong>Remember this path</strong> for later.</p> |
| |
| <p>If you don’t know what an include path is, don’t worry. Simply copy <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to your webserver. So for example, say your |
| site is at <code>http://mysite.com/myfolder</code>, you can copy <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to your site so the directory structure is like this:</p> |
| |
| <pre><code>http://mysite.com/myfolder/geshi/[language files] |
| http://mysite.com/myfolder/geshi.php |
| </code></pre> |
| |
| <p>Or you can put it in any subdirectory you like:</p> |
| |
| <pre><code>http://mysite.com/myfolder/includes/geshi/[language files] |
| http://mysite.com/myfolder/includes/geshi.php |
| </code></pre> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>When using <abbr title="Generic Syntax Highlighter">GeSHi</abbr> on a live site, the only directory required is the <code>geshi/</code> subdirectory. Both <code>contrib/</code> and <code>docs/</code> are |
| worthless, and furthermore, as some people discovered, one of the files in contrib had a security hole (fixed as of 1.0.7.3). |
| I suggest you delete these directories from any live site they are on.</p> |
| |
| </div> |
| |
| <h3 id="basic-usage">2.2 Basic Usage</h3><div class="nav"><a href="#installing-geshi">Previous</a> | <a href="#the-basics">Top</a> | <a href="#advanced-features">Next</a></div> |
| |
| <p>Use of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is very easy. Here’s a simple example:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| <span class="xtra li2"><span class="de2">22</span></span>23 |
| <span class="xtra li2"><span class="de2">24</span></span>25 |
| <span class="xtra li2"><span class="de2">26</span></span>27 |
| <span class="xtra li2"><span class="de2">28</span></span></pre></td><td class="de1"><pre class="de1"><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Include the GeSHi library</span></span></span><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">include_once</span> <span class="st_h">'geshi.php'</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="co1">//</span></span></span><span class="co1">// Define some source to highlight, a language to use</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// and the path to the language files</span></span></span><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$source</span> <span class="sy0">=</span> <span class="st_h">'$foo = 45;</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h">for ( $i = 1; $i < $foo; $i++ )</span></span></span><span class="st_h">{</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"> echo "$foo\n";</span></span></span><span class="st_h"> --$foo;</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h">}'</span><span class="sy0">;</span></span></span><span class="re0">$language</span> <span class="sy0">=</span> <span class="st_h">'php'</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Create a GeSHi object</span></span></span><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="re0">$language</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// And echo the result!</span></span></span><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>As you can see, there’s only three really important lines:</p> |
| |
| <p><code class="highlighted php"><span class="kw1">include_once</span><span class="br0">(</span><span class="st_h">'geshi.php'</span><span class="br0">)</span></code></p> |
| |
| <p>This line includes the <abbr title="Generic Syntax Highlighter">GeSHi</abbr> class for use</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="re0">$language</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>This line creates a new <abbr title="Generic Syntax Highlighter">GeSHi</abbr> object, holding the source and the language you want to use for highlighting.</p> |
| |
| <p><code class="highlighted php"><span class="kw1">echo</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>This line spits out the result :)</p> |
| |
| <p>So as you can see, simple usage of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is really easy. Just create a new <abbr title="Generic Syntax Highlighter">GeSHi</abbr> object and get the code!</p> |
| |
| <p>Since version 1.0.2, there is a function included with <abbr title="Generic Syntax Highlighter">GeSHi</abbr> called <code>geshi_highlight</code>. This behaves exactly as the php |
| function <code class="highlighted php"><span class="kw3">highlight_string</span><span class="br0">(</span><span class="br0">)</span></code> behaves - all you do is pass it the language you want to use to highlight and the |
| path to the language files as well as the source. Here are some examples:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| </pre></td><td class="de1"><pre class="de1"><span class="co1">// Simply echo the highlighted code</span> |
| <span class="xtra li2"><span class="de2">geshi_highlight<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st_h">'php'</span><span class="sy0">,</span> <span class="re0">$path</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Get the code back, for use later</span></span></span><span class="re0">$code</span> <span class="sy0">=</span> geshi_highlight<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st_h">'java'</span><span class="sy0">,</span> <span class="re0">$path</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">// Check if there is an error with parsing this code</span> |
| <span class="xtra li2"><span class="de2"> </span></span><a href="http://www.php.net/ob_start"><span class="kw3">ob_start</span></a><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$result</span> <span class="sy0">=</span> geshi_highlight<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st_h">'perl'</span><span class="sy0">,</span> <span class="re0">$path</span><span class="br0">)</span><span class="sy0">;</span></span></span><span class="re0">$code</span> <span class="sy0">=</span> <a href="http://www.php.net/ob_get_contents"><span class="kw3">ob_get_contents</span></a><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><a href="http://www.php.net/ob_end_clean"><span class="kw3">ob_end_clean</span></a><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">if</span> <span class="br0">(</span> <span class="sy0">!</span><span class="re0">$result</span> <span class="br0">)</span></span></span><span class="br0">{</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">// There was an error with highlighting...</span></span></span><span class="br0">}</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">else</span></span></span><span class="br0">{</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">// All OK :)</span></span></span><span class="br0">}</span></pre></td></tr></tbody></table> |
| |
| <p>However, these are really simple examples and doesn’t even begin to cover all the advanced features of <abbr title="Generic Syntax Highlighter">GeSHi</abbr>. |
| If you want to learn more, continue on to section 3: Advanced Features.</p> |
| |
| <h2 id="advanced-features">3 Advanced Features</h2><div class="nav"><a href="#basic-usage">Previous</a> | <a href="#the-code-container">Next</a></div> |
| |
| <p>This section documents the advanced features of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> - strict mode, using <abbr title="Cascading Style Sheets">CSS</abbr> classes, changing styles on the fly, |
| disabling highlighting of some things and more.</p> |
| |
| <p>In this section there are many code snippets. For all of these, you should assume that the <abbr title="Generic Syntax Highlighter">GeSHi</abbr> library has been |
| included, and a <abbr title="Generic Syntax Highlighter">GeSHi</abbr> object has been created and is referenced by the variable <code class="highlighted php"><span class="re0">$geshi</span></code>. Normally, the |
| source, language and path used are arbitary.</p> |
| |
| <h3 id="the-code-container">3.1 The Code Container</h3><div class="nav"><a href="#advanced-features">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#line-numbers">Next</a></div> |
| |
| <p>The <strong>Code Container</strong> has a fundamental effect on the layout of your code before you even begin to style. What is the |
| Code Container? It’s the bit of markup that goes around your code to contain it. By default your code is surrounded |
| by a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code>, but you can also specify a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code>.</p> |
| |
| <p>The <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> header is the default. If you’re familiar with <abbr title="Hypertext Markup Language">HTML</abbr> you’ll know that whitespace is rendered |
| “as is” by a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> element. The advantage for you is that if you use <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> the whitespace |
| you use will appear pretty much exactly how it is in the source, and what’s more <abbr title="Generic Syntax Highlighter">GeSHi</abbr> won’t have to add a whole |
| lot of <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">br</span> <span class="sy0">/</span>></span></code>’s and non-breaking spaces (<code class="highlighted html4strict"><span class="sc1">&nbsp;</span></code>) to your code to indent it. This saves |
| you source code (and your valuable visitors waiting time and your bandwidth).</p> |
| |
| <p>But if you don’t like <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> or it looks stupid in your browser no matter what styles you try to |
| apply to it or something similar, you might want to use a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> instead. A <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> will |
| result in more source - <abbr title="Generic Syntax Highlighter">GeSHi</abbr> will have to insert whitespace markup - but in return you can wrap long lines of code |
| that would otherwise have your browser’s horizontal scrollbar appear. Of course with <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> you can |
| <em>not</em> wrap lines if you please. The highlighter demo at the <a href="http://qbnz.com/highlighter"><abbr title="Generic Syntax Highlighter">GeSHi</abbr> home page</a> uses the <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> |
| approach for this reason.</p> |
| |
| <p>At this stage there isn’t an option to wrap the code in <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">code</span>></span></code> tags (unless you use the function |
| <code>geshi_highlight</code>), partly because of the inconsistent and unexpected ways stuff in <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">code</span>></span></code> tags is |
| highlighted. Besides, <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">code</span>></span></code> is an inline element. But this may become an option in future versions.</p> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.7.2 there is a new header type, that specifies that the code should not be wrapped in anything at all.</p> |
| |
| <p>Another requested addition has been made in <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.7.20 to force <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to create a block around the highlighted |
| source even if this wasn’t necessary, thus styles that are applied to the output of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> can directly influence |
| the code only even if headers and footers are present.</p> |
| |
| <p>To change/set the header to use, you call the <strong><code class="highlighted php">set_header_type<span class="br0">(</span><span class="br0">)</span></code></strong> method. It has one required argument which |
| defines the container type. Available are:</p> |
| |
| <dl> |
| <dt><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_header_type</span><span class="br0">(</span>GESHI_HEADER_DIV<span class="br0">)</span><span class="sy0">;</span></code></dt> |
| <dd> |
| <p>Puts a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> around both, code and linenumbers. Whitespace is converted to <code class="highlighted html4strict"><span class="sc1">&nbsp;</span></code> |
| sequences (i.e. one whitespace and the html entity of a non-breaking whitespace) to keep your indendation level |
| in tact. Tabs are converted as well and you can manually <a href="#setting-tab-width">define the tab-width</a>. Lines are automatically wrapped. |
| Linenumbers are created using an ordered list.</p> |
| </dd> |
| |
| <dt><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_header_type</span><span class="br0">(</span>GESHI_HEADER_PRE<span class="br0">)</span><span class="sy0">;</span></code></dt> |
| <dd> |
| <p>Wraps code and linenumbers in a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> container. This way whitespace is kept as-is and thus |
| this header produces less overhead then the <code>GESHI_HEADER_DIV</code> header type. Since linenumbers are still |
| created using an ordered list this header type produces <strong>invalid <abbr title="Hypertext Markup Language">HTML</abbr></strong>.</p> |
| </dd> |
| |
| <dt><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_header_type</span><span class="br0">(</span>GESHI_HEADER_PRE_VALID<span class="br0">)</span><span class="sy0">;</span></code></dt> |
| <dd><em><small>Available since 1.0.8</small></em></dd> |
| |
| <dd> |
| <p>When linenumbers are disabled, this behaves just like <code>GESHI_HEADER_PRE</code>. In the other case though, a |
| <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> is used to wrap the code and linenumbers and the <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> is put inside the list |
| items (<code class="highlighted html4strict"><span class="sc2"><<span class="kw2">li</span>></span></code>). This means slightly larger <abbr title="Hypertext Markup Language">HTML</abbr> output compared to <code>GESHI_HEADER_PRE</code>, but the |
| output is <strong>valid <abbr title="Hypertext Markup Language">HTML</abbr></strong>.</p> |
| </dd> |
| |
| <dt><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_header_type</span><span class="br0">(</span>GESHI_HEADER_PRE_TABLE<span class="br0">)</span><span class="sy0">;</span></code></dt> |
| <dd><em><small>Available since 1.0.8</small></em></dd> |
| |
| <dd> |
| <p>Once again a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> tag wraps the output. This time though no ordered list is used to create an ordered list, |
| but instead we use a table with two cells in a single row. The left cell contains a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> tag which holds all |
| linenumbers. The second cell holds the highlighted code, also wrapped in a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> tag, just like with |
| <code>GESHI_HEADER_PRE</code>.</p> |
| </dd> |
| |
| <dd> |
| <p>This produces <strong>valid <abbr title="Hypertext Markup Language">HTML</abbr></strong> and works around the nasty selection behaviour of Firefox and other Gecko based |
| browsers, see <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1651996&group_id=114997&atid=670231">SF#1651996</a> for more information.</p> |
| </dd> |
| |
| <dt><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_header_type</span><span class="br0">(</span>GESHI_HEADER_NONE<span class="br0">)</span><span class="sy0">;</span></code></dt> |
| <dd><em><small>Available since 1.0.7.2</small></em></dd> |
| |
| <dd> |
| <p>No wrapper is added.</p> |
| </dd> |
| </dl> |
| |
| <p>Those are the only arguments you should pass to <code class="highlighted php">set_header_type</code>. Passing anything else may cause inconsistencies |
| in what is used as the Code Container (although it <em>should</em> simply use a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code>). Better not to risk it.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>GESHI_HEADER_DIV, GESHI_HEADER_PRE, etc. are <em>constants</em>, so don’t put them in strings!</p> |
| |
| </div> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>The default styles for the <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> and <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> <em>will be different</em>, especially if you use |
| line numbers!</p> |
| |
| <p>I have found that a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> results in code that is smaller than for that of a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code>, you |
| should rectify this difference by using <strong><code class="highlighted php">set_overall_style<span class="br0">(</span><span class="br0">)</span></code></strong> if you need to. But be aware of this |
| difference for if you are changing the header type!</p> |
| |
| </div> |
| |
| <h3 id="line-numbers">3.2 Line Numbers</h3><div class="nav"><a href="#the-code-container">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#enabling-line-numbers">Next</a></div> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> has the ability to add line numbers to your code (see the demo available at <a href="http://qbnz.com/highlighter/demo.php">http://qbnz.com/highlighter/demo.php</a> |
| to see what can be achieved). Line numbers are a great way to make your code look professional, especially if you use the |
| fancy line numbers feature.</p> |
| |
| <p>There are multiple methods for highlighting line numbers, but none of them is perfect. Of the various ways to highlight |
| line numbers <abbr title="Generic Syntax Highlighter">GeSHi</abbr> itself implements 2 different approaches, but allows you |
| by the way it generates the code to do the line numbers yourself if necessary - but more on this case later.</p> |
| |
| <p>The easiest approach is using the <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">ol</span>></span></code>-tag for generating the line numbers, but |
| even though this is the easiest one there’s a big drawback with this one when |
| using Gecko-engine based browsers like Firefox or Konqueror. In these browsers |
| this approach will select the line numbers along with the code or will include extra markup in the selection.</p> |
| |
| <p>The other approach has been implemented in the 1.0.8 release of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> with the <code class="highlighted php">GESHI_HEADER_PRE_TABLE</code> header type. |
| When using this header type the line numbers are rendered apart from the source |
| in a table cell while the actual source is formatted as if the <code class="highlighted php">GESHI_HEADER_PRE</code> header had been used. |
| This approach works with Firefox and other Gecko-based browsers so far although extreme care |
| has to be taken when applying styles to your source as Windows has some fonts |
| where bold font is of different height than normal or italic text of the same fontface.</p> |
| |
| <h4 id="enabling-line-numbers">3.2.1 Enabling Line Numbers</h4><div class="nav"><a href="#line-numbers">Previous</a> | <a href="#line-numbers">Top</a> | <a href="#styling-line-numbers">Next</a></div> |
| |
| <p>To highlight a source with line numbers, you call the <code class="highlighted php">enable_line_numbers<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_line_numbers</span><span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span><span class="sy0">;</span></code> |
| Where <code class="highlighted php"><span class="re0">$flag</span></code> is one of the following:</p> |
| |
| <ul> |
| <li><code>GESHI_NORMAL_LINE_NUMBERS</code> - Use normal line numbering</li> |
| <li><code>GESHI_FANCY_LINE_NUMBERS</code> - Use fancy line numbering</li> |
| <li><code>GESHI_NO_LINE_NUMBERS</code> - Disable line numbers (default)</li> |
| </ul> |
| |
| <p>Normal line numbers means you specify a style for them, and that style gets applied to all of them. Fancy line numbers |
| means that you can specify a different style for each n<sup>th</sup> line number. You change the value of n (default 5):</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_line_numbers</span><span class="br0">(</span>GESHI_FANCY_LINE_NUMBERS<span class="sy0">,</span> <span class="nu0">37</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>The second parameter is not used in any other mode. Setting it to <code>0</code> is the same as simply using normal line numbers. |
| Setting it to <code>1</code> applies the fancy style to every line number.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>The values above are CONSTANTS - so don’t put them in strings!</p> |
| |
| </div> |
| |
| <h4 id="styling-line-numbers">3.2.2 Styling Line Numbers</h4><div class="nav"><a href="#enabling-line-numbers">Previous</a> | <a href="#line-numbers">Top</a> | <a href="#starting-line-numbers">Next</a></div> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.2, line numbers are added by the use of ordered lists. This solves the old issues of line number |
| styles inheriting from styles meant for the code. Also, this solves an important issue about selecting code. For |
| example, line numbers look nice, but when you go to select the code in your browser to copy it? You got the line |
| numbers too! Not such a good thing, but thankfully this issue is now solved. What is the price? Unfortunately the |
| whole way that styles are inherited/used has changed for those of you who were familiar with 1.0.1, and there is |
| quite a bit more <abbr title="Hypertext Markup Language">HTML</abbr> involved. So think carefully about these things before you enable line numbers.</p> |
| |
| <p>Now, onto how to style line numbers:</p> |
| |
| <p>Styles are set for line numbers using the <code class="highlighted php">set_line_style<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_line_style</span><span class="br0">(</span><span class="st_h">'background: #fcfcfc;'</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>If you’re using Fancy Line Numbers mode, you pass a second string for the style of the n<sup>th</sup> line number:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_line_style</span><span class="br0">(</span><span class="st_h">'background: #fcfcfc;'</span><span class="sy0">,</span> <span class="st_h">'background: #f0f0f0;'</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>The second style will have no effect if you’re not using Fancy Line Numbers mode.</p> |
| |
| <p>By default, the styles you pass overwrite the current styles. Add a boolean “true” after the styles you specify to combine them with the current styles:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span></pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_line_style</span><span class="br0">(</span><span class="st_h">'background: red;'</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">// or, for fancy line numbers</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_line_style</span><span class="br0">(</span><span class="st_h">'background: red;'</span><span class="sy0">,</span> <span class="st_h">'background: blue;'</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">)</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>Due to a bug with Firefox the issue that should have been fixed with 1.0.2 has reappeared in another form as Firefox |
| includes extra text\markup into plaintext versions of webpage copies. This can sometimes be useful (actually it’s |
| used to get the plaintext version of this documentation), but more often is quite annoying. Best practice so far is |
| to either not use line numbers, or offer the visitor of your page a plaintext version of your source. To learn more |
| have a look at the <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1651996&group_id=114997&atid=670231">SF.net BugTracker Issue #1651996</a>. This will hopefully be fixed in <abbr title="Generic Syntax Highlighter">GeSHi</abbr> version 1.2 |
| or as soon as Firefox provides webdevelopers with adequate ways to control this feature - whichever comes first!</p> |
| |
| </div> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>When you set line number styles, the code will inherit those styles! This is the main issue to come out of the 1.0.2 |
| release. If you want your code to be styled in a predictable manner, you’ll have to call the <code class="highlighted php">set_code_style<span class="br0">(</span><span class="br0">)</span></code> |
| method to rectify this problem.</p> |
| |
| <p>Note also that you cannot apply background colours to line numbers unless you use <code class="highlighted php">set_overall_style<span class="br0">(</span><span class="br0">)</span></code>. |
| Here’s how you’d style:</p> |
| |
| <ol> |
| <li><p>Use <code class="highlighted php">set_overall_style<span class="br0">(</span><span class="br0">)</span></code> to style the overall code block. For example, you can set the border |
| style/colour, any margins and padding etc. using this method. <strong>In addition:</strong> set the background colour for |
| all the line numbers using this method.</p></li> |
| <li><p>Use <code class="highlighted php">set_line_style<span class="br0">(</span><span class="br0">)</span></code> to style the foreground of the line numbers. For example, you can set the colour, |
| weight, font, padding etc. of the line numbers using this method.</p></li> |
| <li><p>Use <code class="highlighted php">set_code_style<span class="br0">(</span><span class="br0">)</span></code> to explicitly override the styles you set for line numbers using |
| <code class="highlighted php">set_line_style</code>. For example, if you’d set the line numbers to be bold (or even if you’d only set |
| the fancy line number style to be bold), and you didn’t actually want your code to be bold, you’d make sure |
| that <code class="highlighted css"><span class="kw1">font-weight</span><span class="sy0">:</span> <span class="kw2">normal</span><span class="sy0">;</span></code> was in the stylesheet rule you passed to <code class="highlighted php">set_code_style<span class="br0">(</span><span class="br0">)</span></code>.</p> |
| |
| <p>This is the one major change from <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.1 - make sure you become familiar with this, and make sure that you check |
| any code you have already styled with 1.0.1 when you upgrade to make sure nothing bad happens to it.</p></li> |
| </ol> |
| |
| </div> |
| |
| <h4 id="starting-line-numbers">3.2.3 Choosing a Start Number</h4><div class="nav"><a href="#styling-line-numbers">Previous</a> | <a href="#line-numbers">Top</a> | <a href="#using-css-classes">Next</a></div> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.2, you can now make the line numbers start at any number, rather than just 1. This feature is useful |
| if you’re highlighting code from a file from around a certain line number in that file, as an additional guide to |
| those who will view the code. You set the line numbers by calling the <code class="highlighted php">start_line_numbers_at<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">start_line_numbers_at</span><span class="br0">(</span><span class="re0">$number</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p><code class="highlighted php"><span class="re0">$number</span></code> must be a positive integer (or zero). If it is not, <abbr title="Generic Syntax Highlighter">GeSHi</abbr> will convert it anyway.</p> |
| |
| <p>If you have not enabled line numbers, this will have no effect.</p> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>Although I’d like <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to have XHTML strict compliance, this feature will break compliancy (however transitional |
| compliancy remains). This is because the only widely supported way to change the start value for line numbers is |
| by using the <strong>start=”number”</strong> attribute of the <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">ol</span>></span></code> tag. Although <abbr title="Cascading Style Sheets">CSS</abbr> does provide a mechanism for |
| doing this, it is only supported in Opera versions 7.5 and above (not even Firefox supports this).</p> |
| |
| </div> |
| |
| <h3 id="using-css-classes">3.3 Using <abbr title="Cascading Style Sheets">CSS</abbr> Classes</h3><div class="nav"><a href="#starting-line-numbers">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#enabling-css-classes">Next</a></div> |
| |
| <p>Using <abbr title="Cascading Style Sheets">CSS</abbr> to highlight your code instead of in-lining the styles is a definate bonus. Not only is it more compliant |
| (the w3c is deprecating the style attribute in XHTML 2.0) but it results in far less outputted code - up to a whopping |
| 90% saving - which makes a *huge* difference to those unlucky of us on modems!</p> |
| |
| <h4 id="enabling-css-classes">3.3.1 Enabling <abbr title="Cascading Style Sheets">CSS</abbr> Classes</h4><div class="nav"><a href="#using-css-classes">Previous</a> | <a href="#using-css-classes">Top</a> | <a href="#setting-css-class-id">Next</a></div> |
| |
| <p>By default, <abbr title="Generic Syntax Highlighter">GeSHi</abbr> doesn’t use the classes, so it’s easy just to whack out some highlighted code if you need without |
| worrying about stylesheets. However, if you’re a bit more organised about it, you should use the classes ;). To turn |
| the use of classes on, you call the <code class="highlighted php">enable_classes<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_classes</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>If you want to turn classes OFF for some reason later:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_classes</span><span class="br0">(</span><span class="kw4">false</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>If classes are enabled when <code class="highlighted php">parse_code<span class="br0">(</span><span class="br0">)</span></code> is called, then the resultant source will use <abbr title="Cascading Style Sheets">CSS</abbr> classes in the |
| output, otherwise it will in-line the styles. The advantages of using classes are great - the reduction in source will |
| be very noticeable, and what’s more you can use one stylesheet for several different highlights on the same page. In |
| fact, you can even use an external stylesheet and link to that, saving even more time and source (because stylesheets |
| are cached by browsers).</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>There have been problems with inline styles and the Symbol Highlighting added in 1.0.7.21. If you can you should |
| therefore turn <abbr title="Cascading Style Sheets">CSS</abbr> classes ON to avoid those issues. Although latest reworks in 1.0.8 should fix most of those issues.</p> |
| |
| </div> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>This should be the very first method you call after creating a new <abbr title="Generic Syntax Highlighter">GeSHi</abbr> object! That way, various other methods |
| can act upon your choice to use classes correctly. In theory, you could call this method just before parsing the |
| code, but this may result in unexpected behaviour.</p> |
| |
| </div> |
| |
| <h4 id="setting-css-class-id">3.3.2 Setting the <abbr title="Cascading Style Sheets">CSS</abbr> class and ID</h4><div class="nav"><a href="#enabling-css-classes">Previous</a> | <a href="#using-css-classes">Top</a> | <a href="#getting-stylesheet">Next</a></div> |
| |
| <p>You can set an overall <abbr title="Cascading Style Sheets">CSS</abbr> class and id for the code. This is a good feature that allows you to use the same |
| stylesheet for many different snippets of code. You call <code class="highlighted php">set_overall_class<span class="br0">(</span><span class="br0">)</span></code> and <code class="highlighted php">set_overall_id</code> |
| to accomplish this:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span></pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_overall_class</span><span class="br0">(</span><span class="st_h">'mycode'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_overall_id</span><span class="br0">(</span><span class="st_h">'dk48ck'</span><span class="br0">)</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>The default classname is the name of the language being used. This means you can use just the one stylesheet for all |
| sources that use the same language, and incidentally means that you probably won’t have to call these methods too often.</p> |
| |
| <p><abbr title="Cascading Style Sheets">CSS</abbr> IDs are supposed to be unique, and you should use them as such. Basically, you can specify an ID for your code |
| and then use that ID to highlight that code in a unique way. You’d do this for a block of code that you expressly |
| wanted to be highlighted in a different way (see the section below on gettting the stylesheet for your code for an example).</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 the class name will always include the language name used for highlighting.</p> |
| |
| </div> |
| |
| <h4 id="getting-stylesheet">3.3.3 Getting the stylesheet for your code</h4><div class="nav"><a href="#setting-css-class-id">Previous</a> | <a href="#using-css-classes">Top</a> | <a href="#using-an-external-stylesheet">Next</a></div> |
| |
| <p>The other half of using <abbr title="Cascading Style Sheets">CSS</abbr> classes is getting the stylesheet for use with the classes. <abbr title="Generic Syntax Highlighter">GeSHi</abbr> makes it very easy to |
| get a stylesheet for your code, with one easy method call:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| </pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_classes</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">// Here we have code that will spit out a header for</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// a stylesheet. For example:</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="st_h">'<html></span></span></span><span class="st_h"><head><title>Code</title></span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"><style type="text/css"></span></span></span><span class="st_h"><!--'</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Echo out the stylesheet for this code block</span></span></span><span class="kw1">echo</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">get_stylesheet</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">// And continue echoing the page</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="kw1">echo</span> <span class="st_h">'--></span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"></style></head></span></span></span><span class="st_h"><body>'</span><span class="sy0">;</span></pre></td></tr></tbody></table> |
| |
| <p>The <code class="highlighted php">get_stylesheet<span class="br0">(</span><span class="br0">)</span></code> method gets the stylesheet for your code in one easy call. All you need to do |
| is output it in the correct place. As you can also see, you don’t even have to enable class usage to get the |
| stylesheet nessecary either - however not enabling classes but using the stylesheet may result in problems later.</p> |
| |
| <p>By default, <code class="highlighted php">get_stylesheet<span class="br0">(</span><span class="br0">)</span></code> tries to echo the least amount of code possible. Although currently it doesn’t |
| check to see if a certain lexic is even in the source, you can expect this feature in the future. At least for the |
| present however, if you explicitly disable the highlighting of a certain lexic, or disable line numbers, the related |
| <abbr title="Cascading Style Sheets">CSS</abbr> will not be outputted. This may be a bad thing for you perhaps you’re going to use the stylesheet for many blocks |
| of code, some with line numbers, others with some lexic enabled where this source has it disabled. Or perhaps you’re |
| building an external stylesheet and want all lexics included. So to get around this problem, you do this:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">get_stylesheet</span><span class="br0">(</span><span class="kw4">false</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>This turns economy mode off, and all of the stylesheet will be outputted regardless.</p> |
| |
| <p>Now lets say you have several snippets of code, using the same language. In most of them you don’t mind if they’re |
| highlighted the same way (in fact, that’s exactly what you want) but in one of them you’d like the source to be |
| highlighted differently. Here’s how you can do that:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| <span class="xtra li2"><span class="de2">22</span></span>23 |
| <span class="xtra li2"><span class="de2">24</span></span>25 |
| <span class="xtra li2"><span class="de2">26</span></span>27 |
| <span class="xtra li2"><span class="de2">28</span></span>29 |
| <span class="xtra li2"><span class="de2">30</span></span>31 |
| <span class="xtra li2"><span class="de2">32</span></span>33 |
| <span class="xtra li2"><span class="de2">34</span></span>35 |
| <span class="xtra li2"><span class="de2">36</span></span>37 |
| <span class="xtra li2"><span class="de2">38</span></span>39 |
| <span class="xtra li2"><span class="de2">40</span></span>41 |
| <span class="xtra li2"><span class="de2">42</span></span>43 |
| <span class="xtra li2"><span class="de2">44</span></span>45 |
| <span class="xtra li2"><span class="de2">46</span></span>47 |
| <span class="xtra li2"><span class="de2">48</span></span></pre></td><td class="de1"><pre class="de1"><span class="co1">// assume path is the default "geshi/" relative to the current directory</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$geshi1</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source1</span><span class="sy0">,</span> <span class="re0">$lang</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi2</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source2</span><span class="sy0">,</span> <span class="re0">$lang</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi3</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source3</span><span class="sy0">,</span> <span class="re0">$lang</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Turn classes on for all sources</span></span></span><span class="re0">$geshi1</span><span class="sy0">-></span><span class="me1">enable_classes</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$geshi2</span><span class="sy0">-></span><span class="me1">enable_classes</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi3</span><span class="sy0">-></span><span class="me1">enable_classes</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Make $geshi3 unique</span></span></span><span class="re0">$geshi3</span><span class="sy0">-></span><span class="me1">set_overall_id</span><span class="br0">(</span><span class="st_h">'different'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span> |
| <span class="xtra li2"><span class="de2"><span class="co1">//</span></span></span><span class="co1">// Methods are called on $geshi3 to change styles...</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">//</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="st_h">'<html></span></span></span><span class="st_h"><head><title>Code</title></span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="st_h"><style type="text/css"></span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"><!--</span></span></span><span class="st_h">'</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">// Get the nessecary stylesheets</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="re0">$geshi1</span><span class="sy0">-></span><span class="me1">get_stylesheet</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="re0">$geshi3</span><span class="sy0">-></span><span class="me1">get_stylesheet</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="st_h">'--></span></span></span><span class="st_h"></style></head></span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"><body>'</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="kw1">echo</span> <span class="st_h">'Code snippet 1:'</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="re0">$geshi1</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span><span class="kw1">echo</span> <span class="st_h">'Code snippet 2 (same highlighting as 1):'</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="kw1">echo</span> <span class="re0">$geshi2</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="st_h">'Code snippet 3 (DIFFERENT highlighting):'</span><span class="sy0">;</span></span></span><span class="kw1">echo</span> <span class="re0">$geshi3</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="st_h">'</body></html>'</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>Before version 1.0.2, you needed to set the class of the code you wanted to be unique to the empty string. This |
| limitation has been removed in version 1.0.2 - if you set the ID of a block of code, all styling will be done based |
| on that ID alone.</p> |
| |
| <h4 id="using-an-external-stylesheet">3.3.4 Using an External Stylesheet</h4><div class="nav"><a href="#getting-stylesheet">Previous</a> | <a href="#using-css-classes">Top</a> | <a href="#changing-styles">Next</a></div> |
| |
| <p>An external stylesheet can reduce even more the amount of code needed to highlight some source. However there are some |
| drawbacks with this. To use an external stylesheet, it’s up to you to link it in to your document, normally with |
| the following <abbr title="Hypertext Markup Language">HTML</abbr>:</p> |
| |
| <table class="html4strict geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">HTML code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| </pre></td><td class="de1"><pre class="de1"><span class="sc2"><<a href="http://december.com/html/4/element/html.html"><span class="kw2">html</span></a>></span> |
| <span class="xtra li2"><span class="de2"><span class="sc2"><<a href="http://december.com/html/4/element/head.html"><span class="kw2">head</span></a>></span></span></span><span class="sc2"><<a href="http://december.com/html/4/element/link.html"><span class="kw2">link</span></a> <span class="kw3">rel</span><span class="sy0">=</span><span class="st0">"stylesheet"</span> <span class="kw3">type</span><span class="sy0">=</span><span class="st0">"text/css"</span> <span class="kw3">href</span><span class="sy0">=</span><span class="st0">"url_to_stylesheet.css"</span> <span class="sy0">/</span>></span></pre></td></tr></tbody></table> |
| |
| <p>In your external stylesheet you put <abbr title="Cascading Style Sheets">CSS</abbr> declarations for your code. Then just make sure you’re using the correct class (use |
| <code class="highlighted php">set_overall_class<span class="br0">(</span><span class="br0">)</span></code> to ensure this) and this should work fine.</p> |
| |
| <p>This method is great if you don’t mind the source always being highlighted the same (in particular, if you’re making a |
| plugin for a forum/wiki/other system, using an external stylesheet is a good idea!). It saves a small amount of code and |
| your bandwidth, and it’s relatively easy to just change the stylesheet should you need to. However, using this will render |
| the methods that change the styles of the code useless, because of course the stylesheet is no longer being dynamically |
| generated. You can still disable highlighting of certain lexics dynamically, however.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>As of version 1.0.2, <abbr title="Generic Syntax Highlighter">GeSHi</abbr> comes with a <code>contrib/</code> directory, which in it contains a “wizard” script for creating |
| a stylesheet. Although this script is by no means a complete solution, it will create the necessary rules for the |
| basic lexics - comments, strings for example. Things not included in the wizard include regular expressions for any |
| language that uses them (<abbr title="PHP: HTML Preprocessor">PHP</abbr> and <abbr title="Extensible Markup Language">XML</abbr> are two languages that use them), and keyword-link styles. However, this script |
| should take some of the tedium out of the job of making an external stylesheet. Expect a much better version of this |
| script in version 1.2!</p> |
| |
| </div> |
| |
| <h3 id="changing-styles">3.4 Changing Styles</h3><div class="nav"><a href="#using-an-external-stylesheet">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#the-overall-styles">Next</a></div> |
| |
| <p>One of the more powerful features of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is the ability to change the style of the output dynamically. Why be chained |
| to the boring styles the language authors make up? You can change almost every single aspect of highlighted code - and |
| can even say whether something is to be highlighted at all.</p> |
| |
| <p>If you’re confused about “styles”, you probably want to have a quick tutorial in them so you know what you can do with |
| them. Checkout the homepage of <abbr title="Cascading Style Sheets">CSS</abbr> at <a href="http://www.w3.org/Style/CSS">http://www.w3.org/Style/CSS</a>.</p> |
| |
| <h4 id="the-overall-styles">3.4.1 The Overall Styles</h4><div class="nav"><a href="#changing-styles">Previous</a> | <a href="#changing-styles">Top</a> | <a href="#line-number-styles">Next</a></div> |
| |
| <p>The code outputted by <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is either in a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> or a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> (see the section entitled “The |
| Code Container”), and this can be styled.</p> |
| |
| <p><code>$geshi->set_overall_style('... styles ...');</code> |
| Where styles is a string containing valid <abbr title="Cascading Style Sheets">CSS</abbr> declarations. By default, these styles overwrite the current styles, but you can change this by adding a second parameter:</p> |
| |
| <p><code>$geshi->set_overall_style('color: blue;', true);</code> |
| The default styles “shine through” wherever anything isn’t highlighted. Also, you can apply more advanced styles, like position: (fixed|relative) etc, because a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code>/<code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> is a block level element.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>Remember that a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> will by default have a larger font size than a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code>, as discussed in the section <a href="#the-code-container">“The Code Container”</a>.</p> |
| |
| </div> |
| |
| <h4 id="line-number-styles">3.4.2 Line Number Styles</h4><div class="nav"><a href="#the-overall-styles">Previous</a> | <a href="#changing-styles">Top</a> | <a href="#setting-keyword-styles">Next</a></div> |
| |
| <p>You may wish to refer to the section [Styling Line Numbers][1] before reading this section.</p> |
| |
| <p>As of version 1.0.2, the way line numbers are generated is different, so therefore the way that they are styled is |
| different. In particular, now you cannot set the background style of the fancy line numbers to be different from that |
| of the normal line numbers.</p> |
| |
| <p>Line number styles are set by using the method <code class="highlighted php">set_line_style</code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_line_style</span><span class="br0">(</span><span class="re0">$style1</span><span class="sy0">,</span> <span class="re0">$style2</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p><code class="highlighted php"><span class="re0">$style1</span></code> is the style of the line numbers by default, and <code class="highlighted php"><span class="re0">$style2</span></code> is the style of the fancy line numbers.</p> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>Things have changed since 1.0.1! This note is <strong>very</strong> important - please make sure you check this twice before |
| complaining about line numbers!</p> |
| |
| <p>Because of the way that ordered lists are done in <abbr title="Hypertext Markup Language">HTML</abbr>, there really isn’t normally a way to style the actual |
| <em>numbers</em> in the list. I’ve cheated somewhat with <abbr title="Generic Syntax Highlighter">GeSHi</abbr> - I’ve made it possible to use <abbr title="Cascading Style Sheets">CSS</abbr> to style the <em>foreground</em> of |
| the line numbers. So therefore, you can change the color, font size and type, and padding on them. If you want to |
| have a pretty background, you <strong>must</strong> use <code class="highlighted php">set_overall_style<span class="br0">(</span><span class="br0">)</span></code> to do this, and use <code class="highlighted php">set_code_style<span class="br0">(</span><span class="br0">)</span></code> |
| to style the actual code! This is explained in the section above: <a href="#styling-line-numbers">Styling Line Numbers</a>.</p> |
| |
| <p>In addition, the styles for fancy line numbers <em>is now the difference between the normal styles and the styles you want |
| to achieve</em>. For example, in <abbr title="Generic Syntax Highlighter">GeSHi</abbr> prior to 1.0.2 you may have done this to style line numbers:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_line_style</span><span class="br0">(</span><span class="st_h">'color: red; font-weight: bold;'</span><span class="sy0">,</span> <span class="st_h">'color: green; font-weight: bold'</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Now you instead can do this:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_line_style</span><span class="br0">(</span><span class="st_h">'color: red; font-weight: bold;'</span><span class="sy0">,</span> <span class="st_h">'color: green;'</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>The <code class="highlighted css"><span class="kw1">font-weight</span><span class="sy0">:</span> <span class="kw2">bold</span><span class="sy0">;</span></code> will automatically carry through to the fancy styles. This is actually a small |
| saving in code - but the difference may be confusing for anyone using 1.0.1 at first.</p> |
| |
| </div> |
| |
| <h4 id="setting-keyword-styles">3.4.3 Setting Keyword Styles</h4><div class="nav"><a href="#line-number-styles">Previous</a> | <a href="#changing-styles">Top</a> | <a href="#setting-comment-styles">Next</a></div> |
| |
| <p>Perhaps the most regular change you will make will be to the styles of a keyword set. In order to change the styles for |
| a particular set, you’ll have to know what the set is called first. Sets are numbered from 1 up. Typically, set 1 |
| contains keywords like <code>if</code>, <code>while</code>, <code>do</code>, <code>for</code>, <code>switch</code> etc, set 2 contains <code>null</code>, <code>false</code>, <code>true</code> etc, set 3 |
| contains function inbuilt into the language (<code>echo</code>, <code>htmlspecialchars</code> etc. in <abbr title="PHP: HTML Preprocessor">PHP</abbr>) and set 4 contains data types and |
| similar variable modifiers: <code>int</code>, <code>double</code>, <code>real</code>, <code>static</code> etc. However these things are not fixed, and you should |
| check the language file to see what key you want. Having a familiarity with a language file is definately a plus for |
| using it.</p> |
| |
| <p>To change the styles for a keyword set, call the <code class="highlighted php">set_keyword_group_style<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_keyword_group_style</span><span class="br0">(</span><span class="re0">$group</span><span class="sy0">,</span> <span class="re0">$styles</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$group</span></code> is the group to change the styles for and <code class="highlighted php"><span class="re0">$styles</span></code> is a string containing the styles |
| to apply to that group.</p> |
| |
| <p>By default, the styles you pass overwrite the current styles. Add a boolean <code class="highlighted php"><span class="kw4">true</span></code> after the styles you specify to |
| combine them with the current styles:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_keyword_group_style</span><span class="br0">(</span><span class="nu0">3</span><span class="sy0">,</span> <span class="st_h">'color: white;'</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <h4 id="setting-comment-styles">3.4.4 Setting Comment Styles</h4><div class="nav"><a href="#setting-keyword-styles">Previous</a> | <a href="#changing-styles">Top</a> | <a href="#setting-other-styles">Next</a></div> |
| |
| <p>To change the styles for a comment group, call the <code class="highlighted php">set_comments_style<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_comments_style</span><span class="br0">(</span><span class="re0">$group</span><span class="sy0">,</span> <span class="re0">$styles</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$group</span></code> is either a number corresponding to a single-line comment, or the string <code class="highlighted php"><span class="st_h">'MULTI'</span></code> to |
| specify multiline comments:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span></pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_comments_style</span><span class="br0">(</span><span class="nu0">1</span><span class="sy0">,</span> <span class="st_h">'font-style: italic;'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_comments_style</span><span class="br0">(</span><span class="st_h">'MULTI'</span><span class="sy0">,</span> <span class="st_h">'display: hidden;'</span><span class="br0">)</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>By default, the styles you pass overwrite the current styles. Add a boolean <code class="highlighted php"><span class="kw4">true</span></code> after the styles you specify to |
| combine them with the current styles:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_comments_style</span><span class="br0">(</span><span class="nu0">1</span><span class="sy0">,</span> <span class="st_h">'font-weight: 100;'</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>In 1.0.7.22 a new kind of Comments called “COMMENT_REGEXP” has been added. Those are handled by setting single |
| line comment styles.</p> |
| |
| </div> |
| |
| <h4 id="setting-other-styles">3.4.5 Setting Other Styles</h4><div class="nav"><a href="#setting-comment-styles">Previous</a> | <a href="#changing-styles">Top</a> | <a href="#case-caps">Next</a></div> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> can highlight many other aspects of your source other than just keywords and comments. Strings, Numbers, Methods |
| and Brackets among other things can all also be highlighted. Here are the related methods:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| </pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_escape_characters_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$preserve_defaults</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_symbols_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$preserve_defaults</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_strings_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$preserve_defaults</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span></span></span><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_numbers_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$preserve_defaults</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_methods_style</span><span class="br0">(</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$styles</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$preserve_defaults</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span></span></span><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_regexps_style</span><span class="br0">(</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$styles</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$preserve_defaults</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span></pre></td></tr></tbody></table> |
| |
| <p><code class="highlighted php"><span class="re0">$styles</span></code> is a string containing valid stylesheet declarations, while <code class="highlighted php"><span class="re0">$preserve_defaults</span></code> should be set |
| to <code class="highlighted php"><span class="kw4">true</span></code> if you want your styles to be merged with the previous styles. In the case of <code class="highlighted php">set_methods_style<span class="br0">(</span><span class="br0">)</span></code>, |
| you should select a group to set the styles of, check the language files for the number used for each “object splitter”.</p> |
| |
| <p>Like this was possible for <code class="highlighted php">set_method_style</code> a new parameter has been introduced for |
| <code class="highlighted php">set_symbols_style</code> too which allows you to select the group of symbols for which you’d like to change your |
| style. <code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_symbols_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$preserve_defaults</span><span class="br0">[</span><span class="sy0">,</span> <span class="re0">$group</span><span class="br0">]</span><span class="br0">]</span><span class="br0">)</span><span class="sy0">;</span></code> If the third parameter is not |
| given, group 0 is assumed. Furthermore you should note that any changes to group 0 are also reflected in the bracket |
| style, i.e. a pass-through call to <code class="highlighted php">set_bracket_style</code> is made.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>Since <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 multiple styles for strings and numbers are supported, though the API doesn’t provide full access yet.</p> |
| |
| </div> |
| |
| <h3 id="case-caps">3.5 Case Sensitivity and Auto Casing</h3><div class="nav"><a href="#setting-other-styles">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#auto-caps-nocaps">Next</a></div> |
| |
| <p>Controlling the case of the outputted source is an easy job with <abbr title="Generic Syntax Highlighter">GeSHi</abbr>. You can control which keywords are converted in |
| case, and also control whether keywords are checked in a case sensitive manner.</p> |
| |
| <h4 id="auto-caps-nocaps">3.5.1 Auto-Caps/NoCaps</h4><div class="nav"><a href="#case-caps">Previous</a> | <a href="#case-caps">Top</a> | <a href="#setting-case-sensitivity">Next</a></div> |
| |
| <p>Auto-Caps/NoCaps is a nifty little feature that capitalises or lowercases automatically certain lexics when they are |
| styled. I dabble in QuickBASIC, a dialect of BASIC which is well known for it’s capatalisation, and SQL is another |
| language well known for using caps for readability.</p> |
| |
| <p>To change what case lexics are rendered in, you call the <code class="highlighted php">set_case_keywords<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_case_keywords</span><span class="br0">(</span><span class="re0">$caps_modifier</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>The valid values to pass to this method are:</p> |
| |
| <ul> |
| <li><code>GESHI_CAPS_NO_CHANGE</code> - Don’t change the case of any lexics, leave as they are found</li> |
| <li><code>GESHI_CAPS_UPPER</code> - Uppercase all lexics found</li> |
| <li><code>GESHI_CAPS_LOWER</code> - Lowercase all lexics found</li> |
| </ul> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>When I say “lexic”, I mean “keywords”. <strong>Any</strong> keyword in <strong>any</strong> keyword array will be modified using this option! |
| This is one small area of inflexibility I hope to fix in 1.2.X.</p> |
| |
| </div> |
| |
| <p>I suspect this will only be used to specify <code>GESHI_CAPS_NO_CHANGE</code> to turn off autocaps for languages like SQL |
| and BASIC variants, like so:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span></pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st_h">'sql'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_case_keywords</span><span class="br0">(</span>GESHI_CAPS_NO_CHANGE<span class="br0">)</span><span class="sy0">;</span> <span class="co1">// don't want keywords capatalised</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>All the same, it can be used for some interesting effects:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span></pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st_h">'java'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Anyone who's used java knows how picky it is about CapitalLetters...</span></span></span><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_case_keywords</span><span class="br0">(</span>GESHI_CAPS_LOWER<span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// No *way* the source will look right now ;)</span></span></span></pre></td></tr></tbody></table> |
| |
| <h4 id="setting-case-sensitivity">3.5.2 Setting Case Sensitivity</h4><div class="nav"><a href="#auto-caps-nocaps">Previous</a> | <a href="#case-caps">Top</a> | <a href="#changing-config">Next</a></div> |
| |
| <p>Some languages, like <abbr title="PHP: HTML Preprocessor">PHP</abbr>, don’t mind what case function names and keywords are in, while others, like Java, depend on |
| such pickiness to maintain their bad reputations ;). In any event, you can use the <code class="highlighted php">set_case_sensitivity<span class="br0">(</span><span class="br0">)</span></code> |
| to change the case sensitiveness of a particular keyword group from the default:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_case_sensitivity</span><span class="br0">(</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$sensitivity</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$key</span></code> is the key of the group for which you wish to change case sensitivness for (see the language file |
| for that language), and <code class="highlighted php"><span class="re0">$sensitivity</span></code> is a boolean value - <code class="highlighted php"><span class="kw4">true</span></code> if the keyword is case sensitive, and |
| <code class="highlighted php"><span class="kw4">false</span></code> if not.</p> |
| |
| <h3 id="changing-config">3.6 Changing the Source, Language, Config Options</h3><div class="nav"><a href="#setting-case-sensitivity">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#changing-the-source">Next</a></div> |
| |
| <p>What happens if you want to change the source to be highlighted on the fly, or the language. Or if you want to specify |
| any of those basic fields after you’ve created a <abbr title="Generic Syntax Highlighter">GeSHi</abbr> object? Well, that’s where these methods come in.</p> |
| |
| <h4 id="changing-the-source">3.6.1 Changing the Source Code</h4><div class="nav"><a href="#changing-config">Previous</a> | <a href="#changing-config">Top</a> | <a href="#changing-the-language">Next</a></div> |
| |
| <p>To change the source code, you call the <code class="highlighted php">set_source<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_source</span><span class="br0">(</span><span class="re0">$newsource</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Example:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span></pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source1</span><span class="sy0">,</span> <span class="st_h">'php'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">// Method calls to specify various options...</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$code1</span> <span class="sy0">=</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_source</span><span class="br0">(</span><span class="re0">$source2</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$code2</span> <span class="sy0">=</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <h4 id="changing-the-language">3.6.2 Changing the Language</h4><div class="nav"><a href="#changing-the-source">Previous</a> | <a href="#changing-config">Top</a> | <a href="#changing-the-path">Next</a></div> |
| |
| <p>What happens if you want to change the language used for highlighting? Just call <code class="highlighted php">set_language<span class="br0">(</span><span class="br0">)</span></code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_language</span><span class="br0">(</span><span class="st_h">'newlanguage'</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Example:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span></pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st_h">'php'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$code</span> <span class="sy0">=</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="co1">// Highlight GeSHi's output</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_source</span><span class="br0">(</span><span class="re0">$code</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_language</span><span class="br0">(</span><span class="st_h">'html4strict'</span><span class="br0">)</span><span class="sy0">;</span></span></span><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_classes</span><span class="br0">(</span><span class="kw4">false</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="kw1">echo</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.5, you can use the method <code class="highlighted php">load_from_file<span class="br0">(</span><span class="br0">)</span></code> to load the source code and language from a file. |
| Simply pass this method a file name and it will attempt to load the source and set the language.</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">load_from_file</span><span class="br0">(</span><span class="re0">$file_name</span><span class="sy0">,</span> <span class="re0">$lookup</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p><code class="highlighted php"><span class="re0">$file_name</span></code> is the file name to use, and <code class="highlighted php"><span class="re0">$lookup</span></code> is an optional parameter that contains a lookup |
| array to use for deciding which language to choose. You can use this to override <abbr title="Generic Syntax Highlighter">GeSHi</abbr>’s default lookup array, which |
| may not contain the extension of the file you’re after, or perhaps does have your extension but under a different |
| language. The lookup array is of the form:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span></pre></td><td class="de1"><pre class="de1"><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'lang_name'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'extension'</span><span class="sy0">,</span> <span class="st_h">'extension'</span><span class="sy0">,</span> <span class="sy0">...</span><span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'lang_name'</span> <span class="sy0">...</span> |
| <span class="xtra li2"><span class="de2"><span class="br0">)</span><span class="sy0">;</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>Also, you can use the method <code class="highlighted php">get_language_name_from_extension<span class="br0">(</span><span class="br0">)</span></code> if you need to convert a file extension |
| to a valid language name. This method will return the empty string if it could not find a match in the lookup, and |
| like <code class="highlighted php">load_from_file</code> it accepts an optional second parameter that contains a lookup array.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>Names are case-insensitive - they will be converted to lower case to match a language file however. So if you’re |
| making a language file, remember it should have a name in lower case.</p> |
| |
| </div> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>What you pass to this method is the name of a language file, minus the .php extension. If you’re writing a plugin |
| for a particular application, it’s up to you to somehow convert user input into a valid language name.</p> |
| |
| </div> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>Since <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 this function does not reset language settings for an already loaded language. If you want |
| to highlight code in the same language with different settings add the optional |
| <code class="highlighted php"><span class="re0">$force_reset</span> parameter</code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_language</span><span class="br0">(</span><span class="st_h">'language'</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| </div> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> <code class="highlighted php"><span class="kw1">include</span><span class="br0">(</span><span class="br0">)</span></code>s the language file, so be careful to make sure that users can’t pass some wierd |
| language name to include any old script! <abbr title="Generic Syntax Highlighter">GeSHi</abbr> tries to strip non-valid characters out of a language name, but |
| you should always do this your self anyway. In particular, language files are always lower-case, with either |
| alphanumeric characters, dashes or underscores in their name.</p> |
| |
| <p>At the very least, strip “/” characters out of a language name.</p> |
| |
| </div> |
| |
| <h4 id="changing-the-path">3.6.3 Changing the Language Path</h4><div class="nav"><a href="#changing-the-language">Previous</a> | <a href="#changing-config">Top</a> | <a href="#changing-the-charset">Next</a></div> |
| |
| <p>What happens if all of a sudden you want to use language files from a different directory from the current |
| language file location? You call the <code class="highlighted php">set_language_path<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_language_path</span><span class="br0">(</span><span class="re0">$newpath</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>It doesn’t matter whether the path has a trailing slash after it or not - only that it points to a valid folder. |
| If it doesn’t, that’s your tough luck ;)</p> |
| |
| <h4 id="changing-the-charset">3.6.4 Changing the Character Set</h4><div class="nav"><a href="#changing-the-path">Previous</a> | <a href="#changing-config">Top</a> | <a href="#error-handling">Next</a></div> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>Although <abbr title="Generic Syntax Highlighter">GeSHi</abbr> itself does not require to know the exact charset of your source you |
| will need to set this option when processing sources where multi-byte characters can occur. |
| As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.7.18 internally a rewrite of <code class="highlighted php"><span class="kw3">htmlspecialchars</span></code> is used |
| due to a security flaw in that function that is unpatched in even the most recent PHP4 versions and in PHP5 < 5.2. |
| Although this does no longer explicitely require the charset it is required again |
| as of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 to properly handle multi-byte characters (e.g. after an escape char).</p> |
| |
| </div> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 the default charset has been changed to UTF-8.</p> |
| |
| </div> |
| |
| <p>As of version 1.0.3, you can use the method <code class="highlighted php">set_encoding<span class="br0">(</span><span class="br0">)</span></code> to specify the character set that your source |
| is in. Valid names are those names that are valid for the <abbr title="PHP: HTML Preprocessor">PHP</abbr> mbstring library:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_encoding</span><span class="br0">(</span><span class="re0">$encoding</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>There is a table of valid strings for <code class="highlighted php"><span class="re0">$encoding</span></code> at the php.net manual linked to above. If you do not |
| specify an encoding, or specify an invalid encoding, the character set used is ISO-8859-1.</p> |
| |
| <h3 id="error-handling">3.7 Error Handling</h3><div class="nav"><a href="#changing-the-charset">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#disabling-lexics">Next</a></div> |
| |
| <p>What happens if you try to highlight using a language that doesn’t exist? Or if <abbr title="Generic Syntax Highlighter">GeSHi</abbr> can’t read a required file? |
| The results you get may be confusing. You may check your code over and over, and never find anything wrong. <abbr title="Generic Syntax Highlighter">GeSHi</abbr> |
| provides ways of finding out if <abbr title="Generic Syntax Highlighter">GeSHi</abbr> itself found anything wrong with what you tried to do. After highlighting, |
| you can call the <code class="highlighted php">error<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="st_h">'hi'</span><span class="sy0">,</span> <span class="st_h">'thisLangIsNotSupported'</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p><code class="highlighted php"><span class="kw1">echo</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">error</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span> <span class="co1">// echoes error message</span></code></p> |
| |
| <p>The error message you will get will look like this:</p> |
| |
| <blockquote> |
| <p><abbr title="Generic Syntax Highlighter">GeSHi</abbr> Error: <abbr title="Generic Syntax Highlighter">GeSHi</abbr> could not find the language thisLangIsNotSupported (using path geshi/) (code 2)</p> |
| </blockquote> |
| |
| <p>The error outputted will be the last error <abbr title="Generic Syntax Highlighter">GeSHi</abbr> came across, just like how <code class="highlighted php"><span class="kw3">mysql_error</span><span class="br0">(</span><span class="br0">)</span></code> works.</p> |
| |
| <h3 id="disabling-lexics">3.8 Disabling styling of some Lexics</h3><div class="nav"><a href="#error-handling">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#setting-tab-width">Next</a></div> |
| |
| <p>One disadvantage of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> is that for large source files using complex languages, it can be quite slow with |
| every option turned on. Although future releases will concentrate on the speed/resource side of highlighting, |
| you can gain speed by disabling some of the highlighting options. This is done by using a |
| series of <code class="highlighted php">set_<span class="sy0">*</span>_highlighting</code> methods:</p> |
| |
| <dl> |
| <dt><code class="highlighted php">set_keyword_group_highlighting<span class="br0">(</span><span class="re0">$group</span><span class="sy0">,</span> <span class="re0">$flag</span><span class="br0">)</span><span class="sy0">:</span></code></dt> |
| <dd>Sets whether a particular <code class="highlighted php"><span class="re0">$group</span></code> of keywords is to be highlighted or not. Consult the necessary |
| language file(s) to see what <code class="highlighted php"><span class="re0">$group</span></code> should be for each group (typically a positive integer). |
| <code class="highlighted php"><span class="re0">$flag</span></code> is <code class="highlighted php"><span class="kw4">false</span></code> if you want to disable highlighting of this group, and <code class="highlighted php"><span class="kw4">true</span></code> if you want |
| to re-enable higlighting of this group. If you disable a keyword group then even if the keyword group has a |
| related URL one will not be generated for that keyword.</dd> |
| |
| <dt><code class="highlighted php">set_comments_highlighting<span class="br0">(</span><span class="re0">$group</span><span class="sy0">,</span> <span class="re0">$flag</span><span class="br0">)</span><span class="sy0">:</span></code></dt> |
| <dd>Sets whether a particular <code class="highlighted php"><span class="re0">$group</span></code> of comments is to be highlighted or not. Consult the necessary |
| language file(s) to see what <code class="highlighted php"><span class="re0">$group</span></code> should be for each group (typically a positive integer, or th |
| string <code class="highlighted php"><span class="st_h">'MULTI'</span></code> for multiline comments. <code class="highlighted php"><span class="re0">$flag</span></code> is <code class="highlighted php"><span class="kw4">false</span></code> if you want to disable |
| highlighting of this group, and <code class="highlighted php"><span class="kw4">true</span></code> if you want to re-enable highlighting of this group.</dd> |
| |
| <dt><code class="highlighted php">set_regexps_highlighting<span class="br0">(</span><span class="re0">$regexp</span><span class="sy0">,</span> <span class="re0">$flag</span><span class="br0">)</span><span class="sy0">:</span></code></dt> |
| <dd>Sets whether a particular <code class="highlighted php"><span class="re0">$regexp</span></code> is to be highlighted or not. Consult the necessary language file(s) |
| to see what <code class="highlighted php"><span class="re0">$regexp</span></code> should be for each regexp (typically a positive integer, or the string <code class="highlighted php"><span class="st_h">'MULTI'</span></code> |
| for multiline comments. <code class="highlighted php"><span class="re0">$flag</span></code> is <code class="highlighted php"><span class="kw4">false</span></code> if you want to disable highlighting of this group, |
| and <code class="highlighted php"><span class="kw4">true</span></code> if you want to re-enable highlighting of this group.</dd> |
| </dl> |
| |
| <p>The following methods:</p> |
| |
| <ul> |
| <li><code class="highlighted php">set_escape_characters_highlighting<span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span></code></li> |
| <li><code class="highlighted php">set_symbols_highlighting<span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span></code></li> |
| <li><code class="highlighted php">set_strings_highlighting<span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span></code></li> |
| <li><code class="highlighted php">set_numbers_highlighting<span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span></code></li> |
| <li><code class="highlighted php">set_methods_highlighting<span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span></code></li> |
| </ul> |
| |
| <p>Work on their respective lexics (e.g. <code class="highlighted php">set_methods_highlighting<span class="br0">(</span><span class="br0">)</span></code> will disable/enable highlighting of methods). |
| For each method, if <code class="highlighted php"><span class="re0">$flag</span></code> is <code class="highlighted php"><span class="kw4">false</span></code> then the related lexics will not be highlighted at all (this |
| means no <abbr title="Hypertext Markup Language">HTML</abbr> will surround the lexic like usual, saving on time and bandwidth.</p> |
| |
| <p>In case all highlighting should be disabled or reenabled <abbr title="Generic Syntax Highlighter">GeSHi</abbr> provides two methods called <code class="highlighted php">disable_highlighting<span class="br0">(</span><span class="br0">)</span></code> |
| and <code class="highlighted php">enable_highlighting<span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span></code>. The optional paramter <code class="highlighted php"><span class="re0">$flag</span></code> has been added in 1.0.7.21 and specifies |
| the desired state, i.e. <code class="highlighted php"><span class="kw4">true</span></code> (default) to turn all highlighting on, or <code class="highlighted php"><span class="kw4">false</span></code> to turn all |
| highlighting off. Since 1.0.7.21 the method <code class="highlighted php">disnable_highlighting<span class="br0">(</span><span class="br0">)</span></code> has become deprecated.</p> |
| |
| <h3 id="setting-tab-width">3.9 Setting the Tab Width</h3><div class="nav"><a href="#disabling-lexics">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#using-strict-mode">Next</a></div> |
| |
| <p>If you’re using the <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">pre</span>></span></code> header, tabs are handled automatically by your browser, and in general you can |
| count on good results. However, if you’re using the <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code> header, you may want to specify a tab |
| width explicitly.</p> |
| |
| <p>Note that tabs created in this fashion won’t be like normal tabs - there won’t be “tab-stops” as such, instead |
| tabs will be replaced with the specified number of spaces - just like most editors do.</p> |
| |
| <p>To change the tab width, you call the <code class="highlighted php">set_tab_width<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_tab_width</span><span class="br0">(</span><span class="re0">$width</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$width</span></code> is the width in spaces that you’d like tabs to be.</p> |
| |
| <h3 id="using-strict-mode">3.10 Using Strict Mode</h3><div class="nav"><a href="#setting-tab-width">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#adding-removing-keywords">Next</a></div> |
| |
| <p>Some languages like to get tricky, and jump in and out of the file that they’re in. For example, the vast |
| majority of you reading this will have used a <abbr title="PHP: HTML Preprocessor">PHP</abbr> file. And you know that <abbr title="PHP: HTML Preprocessor">PHP</abbr> code is only executed if it’s |
| within delimiters like <code class="highlighted php"><span class="kw2"><?php</span></code> and <code class="highlighted php"><span class="sy1">?></span></code> (there are others of course…). So what happens if you do the |
| following in a php file?</p> |
| |
| <p><code class="highlighted php"><img src="<span class="kw2"><?php</span> <span class="kw1">echo</span> <span class="kw3">rand</span><span class="br0">(</span><span class="nu0">1</span><span class="sy0">,</span> <span class="nu0">100</span><span class="br0">)</span> <span class="sy1">?></span>" /></code></p> |
| |
| <p>When using <abbr title="Generic Syntax Highlighter">GeSHi</abbr> without strict mode, or using a bad highlighter, you’ll end up with scrambled crap, |
| especially if you’re being slack about where you’re putting your quotes, you could end up with the rest |
| of your file as bright blue. Fortunately, you can tell <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to be “strict” about just when it highlights |
| and when it does not, using the <code class="highlighted php">enable_strict_mode<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_strict_mode</span><span class="br0">(</span><span class="re0">$mode</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$mode</span></code> is <code class="highlighted php"><span class="kw4">true</span></code> or not specified to enable strict mode, or <code class="highlighted php"><span class="kw4">false</span></code> to disable |
| strict mode if you’ve already turned it and don’t want it now.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 there is a new way to tell <abbr title="Generic Syntax Highlighter">GeSHi</abbr> when to use Strict Mode |
| which is somewhat more intelligent than in previous releases. <abbr title="Generic Syntax Highlighter">GeSHi</abbr> now also |
| allows <code class="highlighted php">GESHI_MAYBE</code>, <code class="highlighted php">GESHI_NEVER</code> and <code class="highlighted php">GESHI_ALWAYS</code> instead of <code class="highlighted php"><span class="kw4">true</span></code> and <code class="highlighted php"><span class="kw4">false</span></code>. |
| Basically <code class="highlighted php">GESHI_ALWAYS</code> (<code class="highlighted php"><span class="kw4">true</span></code>) always enables strict mode, |
| whereas <code class="highlighted php">GESHI_NEVER</code> (<code class="highlighted php"><span class="kw4">false</span></code>) completely disables strict mode. The new thing is |
| <code class="highlighted php">GESHI_MAYBE</code> which enables strict mode if it finds any sequences of code |
| that look like strict block delimiters.</p> |
| |
| <p>By the way: That’s why this section had to be changed, as the new documentation |
| tool we now use, applies this feature and thus auto-detects when strict mode has to be used…</p> |
| |
| </div> |
| |
| <h3 id="adding-removing-keywords">3.11 Adding/Removing Keywords</h3><div class="nav"><a href="#using-strict-mode">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#adding-a-keyword">Next</a></div> |
| |
| <p>Lets say that you’re working on a large project, with many files, many classes and many functions. Perhaps also you |
| have the source code on the web and highlighted by <abbr title="Generic Syntax Highlighter">GeSHi</abbr>, perhaps as a front end to CVS, as a learning tool, something |
| to refer to, whatever. Well, why not highlight the names of the functions and classes <em>your</em> project uses, as well |
| as the standard functions and classes? Or perhaps you’re not interested in highlighting certain functions, and would |
| like to remove them? Or maybe you don’t mind if an entire function group goes west in the interest of speed? <abbr title="Generic Syntax Highlighter">GeSHi</abbr> |
| can handle all of this!</p> |
| |
| <h4 id="adding-a-keyword">3.11.1 Adding a Keyword</h4><div class="nav"><a href="#adding-removing-keywords">Previous</a> | <a href="#adding-removing-keywords">Top</a> | <a href="#removing-a-keyword">Next</a></div> |
| |
| <p>If you want to add a keyword to an existing keyword group, you use the <code class="highlighted php">add_keyword</code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">add_keyword</span><span class="br0">(</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$word</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$key</span></code> is the index of the group of keywords you want to add this keyword to, and <code class="highlighted php"><span class="re0">$word</span></code> is |
| the word to add.</p> |
| |
| <p>This implies knowledge of the language file to know the correct index.</p> |
| |
| <h4 id="removing-a-keyword">3.11.2 Removing a Keyword</h4><div class="nav"><a href="#adding-a-keyword">Previous</a> | <a href="#adding-removing-keywords">Top</a> | <a href="#adding-a-keyword-group">Next</a></div> |
| |
| <p>Perhaps you want to remove a keyword from an existing group. Maybe you don’t use it and want to save yourself some time. Whatever the reason, you can remove it using the <code class="highlighted php">remove_keyword</code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">remove_keyword</span><span class="br0">(</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$word</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$key</span></code> is the index of the group of keywords that you want to remove this keyword from, and |
| <code class="highlighted php"><span class="re0">$word</span></code> is the word to remove.</p> |
| |
| <p>This implies knowledge of the language file to know the correct index - most of the time the keywords you’ll |
| want to remove will be in group 3, but this is not guaranteed and you should check the language file first.</p> |
| |
| <p>This function is silent - if the keyword is not in the group you specified, nothing awful will happen ;)</p> |
| |
| <h4 id="adding-a-keyword-group">3.11.3 Adding a Keyword Group</h4><div class="nav"><a href="#removing-a-keyword">Previous</a> | <a href="#adding-removing-keywords">Top</a> | <a href="#removing-a-keyword-group">Next</a></div> |
| |
| <p>Lets say for your big project you have several main functions and classes that you’d like highlighted. Why not |
| add them as their own group instead of having them highlighted the same way as other keywords? Then you can make |
| them stand out, and people can instantly see which functions and classes are user defined or inbuilt. Furthermore, |
| you could set the URL for this group to point at the API documentation of your project.</p> |
| |
| <p>You add a keyword group by using the <code class="highlighted php">add_keyword_group</code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">add_keyword_group</span><span class="br0">(</span><span class="re0">$key</span><span class="sy0">,</span> <span class="re0">$styles</span><span class="sy0">,</span> <span class="re0">$case_sensitive</span><span class="sy0">,</span> <span class="re0">$words</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$key</span></code> is the key that you want to use to refer to this group, <code class="highlighted php"><span class="re0">$styles</span></code> is the styles that |
| you want to use to style this group, <code class="highlighted php"><span class="re0">$case_sensitive</span></code> is <strong>true</strong> or <strong>false</strong> depending on whether you want |
| this group of keywords to be case sensitive or not and <code class="highlighted php"><span class="re0">$words</span></code> is an array of words (or a string) of which |
| words to add to this group. For example:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">add_keyword_group</span><span class="br0">(</span><span class="nu0">10</span><span class="sy0">,</span> <span class="st_h">'color: #600000;'</span><span class="sy0">,</span> <span class="kw4">false</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">(</span><span class="st_h">'myfunc_1'</span><span class="sy0">,</span> <span class="st_h">'myfunc_2'</span><span class="sy0">,</span> <span class="st_h">'myfunc_3'</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Adds a keyword group referenced by index 10, of which all keywords in the group will be dark red, each keyword |
| can be in any case and which contains the keywords “myfunc_1”, “myfunc_2” and “myfunc_3”.</p> |
| |
| <p>After creating such a keyword group, you may call other <abbr title="Generic Syntax Highlighter">GeSHi</abbr> methods on it, just as you would for any other keyword group.</p> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>If you specify a <code class="highlighted php"><span class="re0">$key</span></code> for which there is already a keyword group, the old keyword group will be |
| overwritten! Most language files don’t use numbers larger than 5, so I recommend you play it safe and use a number |
| like 10 or 42.</p> |
| |
| </div> |
| |
| <h4 id="removing-a-keyword-group">3.11.4 Removing a Keyword Group</h4><div class="nav"><a href="#adding-a-keyword-group">Previous</a> | <a href="#adding-removing-keywords">Top</a> | <a href="#headers-and-footers">Next</a></div> |
| |
| <p>Perhaps you <em>really</em> need speed? Why not just remove an entire keyword group? <abbr title="Generic Syntax Highlighter">GeSHi</abbr> won’t have to loop through |
| each keyword checking for its existance, saving much time. You remove a keyword group by using the |
| <code class="highlighted php">remove_keyword_group</code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">remove_keyword_group</span><span class="br0">(</span><span class="re0">$key</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$key</span></code> is the key of the group you wish to remove. This implies knowleged of the language file.</p> |
| |
| <h3 id="headers-and-footers">3.12 Headers and Footers for Your Code</h3><div class="nav"><a href="#removing-a-keyword-group">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#keyword-substitution">Next</a></div> |
| |
| <p>So you want to add some special information to the highlighted source? <abbr title="Generic Syntax Highlighter">GeSHi</abbr> can do that too! You can specify headers |
| and footers for your code, style them, and insert information from the highlighted source into your header or footer.</p> |
| |
| <h4 id="keyword-substitution">3.12.1 Keyword Substitution</h4><div class="nav"><a href="#headers-and-footers">Previous</a> | <a href="#headers-and-footers">Top</a> | <a href="#setting-header-content">Next</a></div> |
| |
| <p>In your header and footer, you can put special keywords that will be replaced with actual configuration values for |
| this <abbr title="Generic Syntax Highlighter">GeSHi</abbr> object. The keywords you can use are:</p> |
| |
| <ul> |
| <li><strong><code><TIME></code></strong> or <strong><code>{TIME}</code></strong>: Is replaced by the time it took for the <code class="highlighted php">parse_code<span class="br0">(</span><span class="br0">)</span></code> method - i.e., |
| how long it took for your code to be highlighted. The time is returned to three decimal places.</li> |
| <li><strong><code><LANGUAGE></code></strong> or <strong><code>{LANGUAGE}</code></strong>: Is replaced by a nice, friendly version of the language name used to |
| highlight this code.</li> |
| <li><strong><code><SPEED></code></strong> or <strong><code>{SPEED}</code></strong>: Is replaced by the speed at which your source has been processed.</li> |
| <li><strong><code><VERSION></code></strong> or <strong><code>{VERSION}</code></strong>: The <abbr title="Generic Syntax Highlighter">GeSHi</abbr> version used to highlight the code.</li> |
| </ul> |
| |
| <h4 id="setting-header-content">3.12.2 Setting Header Content</h4><div class="nav"><a href="#keyword-substitution">Previous</a> | <a href="#headers-and-footers">Top</a> | <a href="#setting-footer-content">Next</a></div> |
| |
| <p>The header for your code is a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code>, which is inside the containing block. Therefore, it is affected by |
| the method <code class="highlighted php">set_overall_style</code>, and should contain the sort of <abbr title="Hypertext Markup Language">HTML</abbr> that belongs in a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code>. |
| You may use any <abbr title="Hypertext Markup Language">HTML</abbr> you like, and format it as an <abbr title="Hypertext Markup Language">HTML</abbr> document. You should use valid <abbr title="Hypertext Markup Language">HTML</abbr> - convert to entities |
| any quotemarks or angle brackets you want displayed. You set the header content using the method |
| <code class="highlighted php">set_header_content<span class="br0">(</span><span class="br0">)</span></code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_header_content</span><span class="br0">(</span><span class="re0">$content</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$content</span></code> is the <abbr title="Hypertext Markup Language">HTML</abbr> you want to use for the header.</p> |
| |
| <h4 id="setting-footer-content">3.12.3 Setting Footer Content</h4><div class="nav"><a href="#setting-header-content">Previous</a> | <a href="#headers-and-footers">Top</a> | <a href="#styling-header-content">Next</a></div> |
| |
| <p>The footer for your code is a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code>, which is inside the containing block. Therefore, it is affected by |
| the method <code class="highlighted php">set_overall_style</code>, and should contain the sort of <abbr title="Hypertext Markup Language">HTML</abbr> that belongs in a <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">div</span>></span></code>. |
| You may use any <abbr title="Hypertext Markup Language">HTML</abbr> you like, and format it as an <abbr title="Hypertext Markup Language">HTML</abbr> document. You should use valid <abbr title="Hypertext Markup Language">HTML</abbr> - convert to entities |
| any quotemarks or angle brackets you want displayed. You set the footer content using the method |
| <code class="highlighted php">set_footer_content<span class="br0">(</span><span class="br0">)</span></code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_footer_content</span><span class="br0">(</span><span class="re0">$content</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$content</span></code> is the <abbr title="Hypertext Markup Language">HTML</abbr> you want to use for the footer.</p> |
| |
| <h4 id="styling-header-content">3.12.4 Styling Header Content</h4><div class="nav"><a href="#setting-footer-content">Previous</a> | <a href="#headers-and-footers">Top</a> | <a href="#styling-footer-content">Next</a></div> |
| |
| <p>You can apply styles to the header content you have set with the <code class="highlighted php">set_header_content_style</code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_header_content_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$styles</span></code> is the stylesheet declarations you want to use to style the header content.</p> |
| |
| <h4 id="styling-footer-content">3.12.5 Styling Footer Content</h4><div class="nav"><a href="#styling-header-content">Previous</a> | <a href="#headers-and-footers">Top</a> | <a href="#keyword-urls">Next</a></div> |
| |
| <p>You can apply styles to the footer content you have set with the <code class="highlighted php">set_footer_content_style</code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_footer_content_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$styles</span></code> is the stylesheet declarations you want to use to style the footer content.</p> |
| |
| <h3 id="keyword-urls">3.13 Keyword URLs</h3><div class="nav"><a href="#styling-footer-content">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#setting-a-url">Next</a></div> |
| |
| <p>As of version 1.0.2, <abbr title="Generic Syntax Highlighter">GeSHi</abbr> allows you to specify a URL for keyword groups. This URL is used by <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to convert |
| the keywords in that group into URLs to appropriate documentation. And using <code class="highlighted php">add_keyword_group</code> you |
| can add functions and classes from your own projects and use the URL functionality to provide a link to your |
| own API documentation.</p> |
| |
| <h4 id="setting-a-url">3.13.1 Setting a URL for a Keyword Group</h4><div class="nav"><a href="#keyword-urls">Previous</a> | <a href="#keyword-urls">Top</a> | <a href="#disabling-urls">Next</a></div> |
| |
| <p>To set the URL to be used for a keyword group, you use the <code class="highlighted php">set_url_for_keyword_group<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_url_for_keyword_group</span><span class="br0">(</span><span class="re0">$group</span><span class="sy0">,</span> <span class="re0">$url</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$group</span></code> is the keyword group you want to assign the URL for, and <code class="highlighted php"><span class="re0">$url</span></code> is the URL for |
| this group of keywords.</p> |
| |
| <p>You may be wondering how to make each keyword in the group point to the correct URL. You do this by putting |
| <code>{FNAME}</code> in the URL at the correct place. For example, <abbr title="PHP: HTML Preprocessor">PHP</abbr> makes it easy by linking <code>www.php.net/function-name</code> |
| to the documentation for that function, so the URL used is <code>http://www.php.net/{FNAME}</code>.</p> |
| |
| <p>Of course, when you get to a language like Java, that puts its class documentation in related folders, it gets a |
| little trickier to work out an appropriate URL (see the Java language file!). I hope to provide some kind of |
| redirection service at the <abbr title="Generic Syntax Highlighter">GeSHi</abbr> website in the future.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>As of Version 1.0.7.21 there have been added two more symbols you can use to link to functions. <code>{FNAMEL}</code> |
| will generate the lowercase version of the keyword, <code>{FNAMEU}</code> will generate the uppercase version. <code>{FNAME}</code> |
| will provide the keyword as specified in the language file. <strong>Use one of these more specific placeholders |
| if possible</strong>, as they result in less overhead while linking for case insensitive languages.</p> |
| |
| </div> |
| |
| <h4 id="disabling-urls">3.13.2 Disabling a URL for a Keyword Group</h4><div class="nav"><a href="#setting-a-url">Previous</a> | <a href="#keyword-urls">Top</a> | <a href="#disabling-all-urls">Next</a></div> |
| |
| <p>It’s easy to disable a URL for a keyword group: Simply use the method <code class="highlighted php">set_url_for_keyword_group<span class="br0">(</span><span class="br0">)</span></code> to pass |
| an empty string as the URL:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_url_for_keyword_group</span><span class="br0">(</span><span class="re0">$group</span><span class="sy0">,</span> <span class="st_h">''</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <h4 id="disabling-all-urls">3.13.3 Disabling all URLs for Keywords</h4><div class="nav"><a href="#disabling-urls">Previous</a> | <a href="#keyword-urls">Top</a> | <a href="#styling-links">Next</a></div> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.7.18, you can disable all URL linking for keywords:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_keyword_links</span><span class="br0">(</span><span class="kw4">false</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <h4 id="styling-links">3.13.4 Styling Links</h4><div class="nav"><a href="#disabling-all-urls">Previous</a> | <a href="#keyword-urls">Top</a> | <a href="#using-targets">Next</a></div> |
| |
| <p>You can also style the function links. You can style their default status, hovered, active and visited status. |
| All of this is controlled by one method, <code class="highlighted php">set_link_styles<span class="br0">(</span><span class="br0">)</span></code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_link_styles</span><span class="br0">(</span><span class="re0">$mode</span><span class="sy0">,</span> <span class="re0">$styles</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$mode</span></code> is one of four values:</p> |
| |
| <ul> |
| <li><strong><code class="highlighted php">GESHI_LINK</code>:</strong> The default style of the links.</li> |
| <li><strong><code class="highlighted php">GESHI_HOVER</code>:</strong> The style of the links when they have focus (the mouse is hovering over them).</li> |
| <li><strong><code class="highlighted php">GESHI_ACTIVE</code>:</strong> The style of the links when they are being clicked.</li> |
| <li><strong><code class="highlighted php">GESHI_VISITED</code>:</strong> The style of links that the user has already visited.</li> |
| </ul> |
| |
| <p>And <code class="highlighted php"><span class="re0">$styles</span></code> is the stylesheet declarations to apply to the links.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>The names <code class="highlighted php">GESHI_LINK</code>, <code class="highlighted php">GESHI_HOVER</code> … are constants. Don’t put them in quotes!</p> |
| |
| </div> |
| |
| <h4 id="using-targets">3.13.5 Setting the Link Target</h4><div class="nav"><a href="#styling-links">Previous</a> | <a href="#keyword-urls">Top</a> | <a href="#using-contextual-importance">Next</a></div> |
| |
| <p>Perhaps you want to set the target of link attributes, so the manual pages open in a new window? Use the |
| <code class="highlighted php">set_link_target<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_link_target</span><span class="br0">(</span><span class="re0">$target</span><span class="sy0">,</span> <span class="re0">$styles</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$target</span></code> is any valid (X)<abbr title="Hypertext Markup Language">HTML</abbr> target value - <code>_blank</code> or <code>_top</code> for example.</p> |
| |
| <h3 id="using-contextual-importance">3.14 Using Contextual Importance</h3><div class="nav"><a href="#using-targets">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#highlighting-special-lines-extra">Next</a></div> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>This functionality is not only buggy, but is proving very hard to implement in 1.1.X. Therefore, this |
| functionality may well be <strong>removed</strong> in 1.2.0. You are hereby warned!</p> |
| |
| </div> |
| |
| <p>This feature allows you to mark a part of your source as important. But as the |
| implementation its use is deprecated and you should consider using |
| the “Highlight Lines Extra” feature described below.</p> |
| |
| <h3 id="highlighting-special-lines-extra">3.15 Highlighting Special Lines “Extra”</h3><div class="nav"><a href="#using-contextual-importance">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#specifying-lines-to-highlight-extra">Next</a></div> |
| |
| <p>An alternative (and more stable) method of highlighting code that is important |
| is to use extra highlighting by line. Although you may not know what line numbers |
| contain the important lines, if you do this method is a much more flexible way of |
| making important lines stand out.</p> |
| |
| <h4 id="specifying-lines-to-highlight-extra">3.15.1 Specifying the Lines to Highlight Extra</h4><div class="nav"><a href="#highlighting-special-lines-extra">Previous</a> | <a href="#highlighting-special-lines-extra">Top</a> | <a href="#styles-for-highlighted-lines">Next</a></div> |
| |
| <p>To specify which lines to highlight extra, you pass an array containing the line numbers to <code class="highlighted php">highlight_lines_extra<span class="br0">(</span><span class="br0">)</span></code>:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">highlight_lines_extra</span><span class="br0">(</span><span class="re0">$array</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>The array could be in the form <code class="highlighted php"><span class="kw3">array</span><span class="br0">(</span><span class="nu0">2</span><span class="sy0">,</span> <span class="nu0">3</span><span class="sy0">,</span> <span class="nu0">4</span><span class="sy0">,</span> <span class="nu0">7</span><span class="sy0">,</span> <span class="nu0">12</span><span class="sy0">,</span> <span class="nu0">344</span><span class="sy0">,</span> <span class="nu0">4242</span><span class="br0">)</span></code>, made from a DB query, generated |
| from looking through the source for certain important things and working out what line those things are… |
| However you get the line numbers, the array should simply be an array of integers.</p> |
| |
| <p>Here’s an example, using the same source as before:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| </pre></td><td class="de1"><pre class="de1"><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// Here we go again! This time we'll simply highlight the 8th line</span></span></span><span class="co1">//</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$source</span> <span class="sy0">=</span> <span class="st_h">'public int[][] product ( n, m )</span></span></span><span class="st_h">{</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"> int [][] ans = new int[n][m];</span></span></span><span class="st_h"> for ( int i = 0; i < n; i++ )</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"> {</span></span></span><span class="st_h"> for ( int j = 0; i < m; j++ )</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"> {</span></span></span><span class="st_h"> ans[i][j] = i * j;</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"> }</span></span></span><span class="st_h"> }</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h"> return ans;</span></span></span><span class="st_h">}'</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="st_h">'java'</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">highlight_lines_extra</span><span class="br0">(</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="nu0">8</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="kw1">echo</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></pre></td></tr></tbody></table> |
| |
| <p>Which produces:</p> |
| |
| <table class="java geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">Java code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2"><span class="xtra ln-xtra">8</span></span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span></pre></td><td class="de1"><pre class="de1"><span class="kw1">public</span> <span class="kw4">int</span><span class="br0">[</span><span class="br0">]</span><span class="br0">[</span><span class="br0">]</span> product <span class="br0">(</span> n, m <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"><span class="br0">{</span></span></span> <span class="kw4">int</span> <span class="br0">[</span><span class="br0">]</span><span class="br0">[</span><span class="br0">]</span> ans <span class="sy0">=</span> <span class="kw1">new</span> <span class="kw4">int</span><span class="br0">[</span>n<span class="br0">]</span><span class="br0">[</span>m<span class="br0">]</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> <span class="kw1">for</span> <span class="br0">(</span> <span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0"><</span> n<span class="sy0">;</span> i<span class="sy0">++</span> <span class="br0">)</span></span></span> <span class="br0">{</span> |
| <span class="xtra li2"><span class="de2"> <span class="kw1">for</span> <span class="br0">(</span> <span class="kw4">int</span> j <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0"><</span> m<span class="sy0">;</span> j<span class="sy0">++</span> <span class="br0">)</span></span></span> <span class="br0">{</span> |
| <span class="xtra li2"><span class="de2"><span class="xtra ln-xtra"> ans<span class="br0">[</span>i<span class="br0">]</span><span class="br0">[</span>j<span class="br0">]</span> <span class="sy0">=</span> i <span class="sy0">*</span> j<span class="sy0">;</span></span></span></span> <span class="br0">}</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">}</span></span></span> <span class="kw1">return</span> ans<span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="br0">}</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>What’s more, as you can see the code on a highlighted line is still actually highlighted itself.</p> |
| |
| <h4 id="styles-for-highlighted-lines">3.15.2 Styles for the Highlighted Lines</h4><div class="nav"><a href="#specifying-lines-to-highlight-extra">Previous</a> | <a href="#highlighting-special-lines-extra">Top</a> | <a href="#adding-ids-to-each-line">Next</a></div> |
| |
| <p>Again as with contextual importance, you’re not chained to the yellow theme that is the default. You can |
| use the <code class="highlighted php">set_highlight_lines_extra_style</code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">set_highlight_lines_extra_style</span><span class="br0">(</span><span class="re0">$styles</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$styles</span></code> is the stylesheet declarations that you want to apply to highlighted lines.</p> |
| |
| <h3 id="adding-ids-to-each-line">3.16 Adding IDs to Each Line</h3><div class="nav"><a href="#styles-for-highlighted-lines">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#getting-the-time-of-styling">Next</a></div> |
| |
| <p>Perhaps you’re a javascript junkie? <abbr title="Generic Syntax Highlighter">GeSHi</abbr> provides a way to give each line an ID so you can access that line with |
| javascript, or perhaps just by plain <abbr title="Cascading Style Sheets">CSS</abbr> (though if you want to access lines by <abbr title="Cascading Style Sheets">CSS</abbr> you should use the method |
| in the previous section). To enable IDs you call the <code class="highlighted php">enable_ids<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">enable_ids</span><span class="br0">(</span><span class="re0">$flag</span><span class="br0">)</span><span class="sy0">;</span></code></p> |
| |
| <p>Where <code class="highlighted php"><span class="re0">$flag</span></code> is <code class="highlighted php"><span class="kw4">true</span></code> or not present to enable IDs, and <code class="highlighted php"><span class="kw4">false</span></code> to disable them again if you need.</p> |
| |
| <p>The ID generated is in the form <code>{overall-css-id}-{line-number}</code>. So for example, if you set the overall <abbr title="Cascading Style Sheets">CSS</abbr> id to |
| be “mycode”, then the IDs for each line would by “mycode-1”, “mycode-2” etc. If there is no <abbr title="Cascading Style Sheets">CSS</abbr> ID set, then one is |
| made up in the form <code>geshi-[4 random characters]</code>, but this is not so useful for if you want to do javascript manipulation.</p> |
| |
| <h3 id="getting-the-time-of-styling">3.17 Getting the Time of Styling</h3><div class="nav"><a href="#adding-ids-to-each-line">Previous</a> | <a href="#advanced-features">Top</a> | <a href="#language-files">Next</a></div> |
| |
| <p>Once you’ve called <code class="highlighted php">parse_code<span class="br0">(</span><span class="br0">)</span></code>, you can get the time it took to run the highlighting by calling the |
| <code class="highlighted php">get_time<span class="br0">(</span><span class="br0">)</span></code> method:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| </pre></td><td class="de1"><pre class="de1"><span class="re0">$geshi</span> <span class="sy0">=</span> <span class="kw2">new</span> GeSHi<span class="br0">(</span><span class="re0">$source</span><span class="sy0">,</span> <span class="re0">$language</span><span class="sy0">,</span> <span class="re0">$path</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$code</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_real_escape_string"><span class="kw3">mysql_real_escape_string</span></a><span class="br0">(</span><span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">parse_code</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"><span class="re0">$time</span> <span class="sy0">=</span> <span class="re0">$geshi</span><span class="sy0">-></span><span class="me1">get_time</span><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="co1">// do something with it</span></span></span><a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">(</span><span class="st0">"INSERT INTO code VALUES ('<span class="es4">$code</span>', '<span class="es4">$time</span>')"</span><span class="br0">)</span><span class="sy0">;</span></pre></td></tr></tbody></table> |
| |
| <h2 id="language-files">4 Language Files</h2><div class="nav"><a href="#getting-the-time-of-styling">Previous</a> | <a href="#language-file-example">Next</a></div> |
| |
| <p>So now you know what features <abbr title="Generic Syntax Highlighter">GeSHi</abbr> offers, and perhaps you’ve even meddled with the source. Or perhaps |
| you’d like a language file for language X but it doesn’t seem to be supported? Rubbish! <abbr title="Generic Syntax Highlighter">GeSHi</abbr> will highlight |
| anything, what do you think I coded this for? ^_^ You’ll just have to learn how to make a language file |
| yourself. And I promise it’s not too hard - and if you’re here you’re in the right place!</p> |
| |
| <h3 id="language-file-example">4.1 An Example Language File</h3><div class="nav"><a href="#language-files">Previous</a> | <a href="#language-files">Top</a> | <a href="#language-file-conventions">Next</a></div> |
| |
| <p>Let’s begin by looking at an example language file - the language file for the first language ever supported, |
| <abbr title="PHP: HTML Preprocessor">PHP</abbr>:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| <span class="xtra li2"><span class="de2">22</span></span>23 |
| <span class="xtra li2"><span class="de2">24</span></span>25 |
| <span class="xtra li2"><span class="de2">26</span></span>27 |
| <span class="xtra li2"><span class="de2">28</span></span>29 |
| <span class="xtra li2"><span class="de2">30</span></span>31 |
| <span class="xtra li2"><span class="de2">32</span></span>33 |
| <span class="xtra li2"><span class="de2">34</span></span>35 |
| <span class="xtra li2"><span class="de2">36</span></span>37 |
| <span class="xtra li2"><span class="de2">38</span></span>39 |
| <span class="xtra li2"><span class="de2">40</span></span>41 |
| <span class="xtra li2"><span class="de2">42</span></span>43 |
| <span class="xtra li2"><span class="de2">44</span></span>45 |
| <span class="xtra li2"><span class="de2">46</span></span>47 |
| <span class="xtra li2"><span class="de2">48</span></span>49 |
| <span class="xtra li2"><span class="de2">50</span></span>51 |
| <span class="xtra li2"><span class="de2">52</span></span>53 |
| <span class="xtra li2"><span class="de2">54</span></span>55 |
| <span class="xtra li2"><span class="de2">56</span></span>57 |
| <span class="xtra li2"><span class="de2">58</span></span>59 |
| <span class="xtra li2"><span class="de2">60</span></span>61 |
| <span class="xtra li2"><span class="de2">62</span></span>63 |
| <span class="xtra li2"><span class="de2">64</span></span>65 |
| <span class="xtra li2"><span class="de2">66</span></span>67 |
| <span class="xtra li2"><span class="de2">68</span></span>69 |
| <span class="xtra li2"><span class="de2">70</span></span>71 |
| <span class="xtra li2"><span class="de2">72</span></span>73 |
| <span class="xtra li2"><span class="de2">74</span></span>75 |
| <span class="xtra li2"><span class="de2">76</span></span>77 |
| <span class="xtra li2"><span class="de2">78</span></span>79 |
| <span class="xtra li2"><span class="de2">80</span></span>81 |
| <span class="xtra li2"><span class="de2">82</span></span>83 |
| <span class="xtra li2"><span class="de2">84</span></span>85 |
| <span class="xtra li2"><span class="de2">86</span></span>87 |
| <span class="xtra li2"><span class="de2">88</span></span>89 |
| <span class="xtra li2"><span class="de2">90</span></span>91 |
| <span class="xtra li2"><span class="de2">92</span></span>93 |
| <span class="xtra li2"><span class="de2">94</span></span>95 |
| <span class="xtra li2"><span class="de2">96</span></span>97 |
| <span class="xtra li2"><span class="de2">98</span></span>99 |
| <span class="xtra li2"><span class="de2">100</span></span>101 |
| <span class="xtra li2"><span class="de2">102</span></span>103 |
| <span class="xtra li2"><span class="de2">104</span></span>105 |
| <span class="xtra li2"><span class="de2">106</span></span>107 |
| <span class="xtra li2"><span class="de2">108</span></span>109 |
| <span class="xtra li2"><span class="de2">110</span></span>111 |
| <span class="xtra li2"><span class="de2">112</span></span>113 |
| <span class="xtra li2"><span class="de2">114</span></span>115 |
| <span class="xtra li2"><span class="de2">116</span></span>117 |
| <span class="xtra li2"><span class="de2">118</span></span>119 |
| <span class="xtra li2"><span class="de2">120</span></span>121 |
| <span class="xtra li2"><span class="de2">122</span></span>123 |
| <span class="xtra li2"><span class="de2">124</span></span>125 |
| <span class="xtra li2"><span class="de2">126</span></span>127 |
| <span class="xtra li2"><span class="de2">128</span></span>129 |
| <span class="xtra li2"><span class="de2">130</span></span>131 |
| <span class="xtra li2"><span class="de2">132</span></span>133 |
| <span class="xtra li2"><span class="de2">134</span></span>135 |
| <span class="xtra li2"><span class="de2">136</span></span>137 |
| <span class="xtra li2"><span class="de2">138</span></span>139 |
| <span class="xtra li2"><span class="de2">140</span></span>141 |
| <span class="xtra li2"><span class="de2">142</span></span>143 |
| <span class="xtra li2"><span class="de2">144</span></span>145 |
| <span class="xtra li2"><span class="de2">146</span></span>147 |
| <span class="xtra li2"><span class="de2">148</span></span>149 |
| <span class="xtra li2"><span class="de2">150</span></span>151 |
| <span class="xtra li2"><span class="de2">152</span></span>153 |
| <span class="xtra li2"><span class="de2">154</span></span>155 |
| <span class="xtra li2"><span class="de2">156</span></span>157 |
| <span class="xtra li2"><span class="de2">158</span></span>159 |
| <span class="xtra li2"><span class="de2">160</span></span>161 |
| <span class="xtra li2"><span class="de2">162</span></span>163 |
| <span class="xtra li2"><span class="de2">164</span></span>165 |
| <span class="xtra li2"><span class="de2">166</span></span>167 |
| <span class="xtra li2"><span class="de2">168</span></span>169 |
| <span class="xtra li2"><span class="de2">170</span></span>171 |
| <span class="xtra li2"><span class="de2">172</span></span>173 |
| <span class="xtra li2"><span class="de2">174</span></span>175 |
| <span class="xtra li2"><span class="de2">176</span></span>177 |
| <span class="xtra li2"><span class="de2">178</span></span>179 |
| <span class="xtra li2"><span class="de2">180</span></span>181 |
| <span class="xtra li2"><span class="de2">182</span></span>183 |
| <span class="xtra li2"><span class="de2">184</span></span>185 |
| <span class="xtra li2"><span class="de2">186</span></span>187 |
| <span class="xtra li2"><span class="de2">188</span></span>189 |
| <span class="xtra li2"><span class="de2">190</span></span>191 |
| <span class="xtra li2"><span class="de2">192</span></span>193 |
| <span class="xtra li2"><span class="de2">194</span></span>195 |
| <span class="xtra li2"><span class="de2">196</span></span>197 |
| <span class="xtra li2"><span class="de2">198</span></span>199 |
| <span class="xtra li2"><span class="de2">200</span></span>201 |
| <span class="xtra li2"><span class="de2">202</span></span>203 |
| <span class="xtra li2"><span class="de2">204</span></span>205 |
| <span class="xtra li2"><span class="de2">206</span></span>207 |
| <span class="xtra li2"><span class="de2">208</span></span>209 |
| <span class="xtra li2"><span class="de2">210</span></span>211 |
| <span class="xtra li2"><span class="de2">212</span></span>213 |
| <span class="xtra li2"><span class="de2">214</span></span>215 |
| <span class="xtra li2"><span class="de2">216</span></span>217 |
| <span class="xtra li2"><span class="de2">218</span></span>219 |
| <span class="xtra li2"><span class="de2">220</span></span>221 |
| <span class="xtra li2"><span class="de2">222</span></span>223 |
| <span class="xtra li2"><span class="de2">224</span></span>225 |
| <span class="xtra li2"><span class="de2">226</span></span>227 |
| <span class="xtra li2"><span class="de2">228</span></span>229 |
| <span class="xtra li2"><span class="de2">230</span></span>231 |
| <span class="xtra li2"><span class="de2">232</span></span>233 |
| <span class="xtra li2"><span class="de2">234</span></span>235 |
| <span class="xtra li2"><span class="de2">236</span></span>237 |
| <span class="xtra li2"><span class="de2">238</span></span>239 |
| <span class="xtra li2"><span class="de2">240</span></span>241 |
| <span class="xtra li2"><span class="de2">242</span></span>243 |
| <span class="xtra li2"><span class="de2">244</span></span>245 |
| <span class="xtra li2"><span class="de2">246</span></span>247 |
| <span class="xtra li2"><span class="de2">248</span></span>249 |
| <span class="xtra li2"><span class="de2">250</span></span>251 |
| <span class="xtra li2"><span class="de2">252</span></span>253 |
| <span class="xtra li2"><span class="de2">254</span></span>255 |
| <span class="xtra li2"><span class="de2">256</span></span>257 |
| <span class="xtra li2"><span class="de2">258</span></span>259 |
| <span class="xtra li2"><span class="de2">260</span></span>261 |
| <span class="xtra li2"><span class="de2">262</span></span>263 |
| <span class="xtra li2"><span class="de2">264</span></span>265 |
| <span class="xtra li2"><span class="de2">266</span></span>267 |
| <span class="xtra li2"><span class="de2">268</span></span>269 |
| <span class="xtra li2"><span class="de2">270</span></span>271 |
| <span class="xtra li2"><span class="de2">272</span></span>273 |
| <span class="xtra li2"><span class="de2">274</span></span>275 |
| <span class="xtra li2"><span class="de2">276</span></span>277 |
| <span class="xtra li2"><span class="de2">278</span></span>279 |
| <span class="xtra li2"><span class="de2">280</span></span>281 |
| <span class="xtra li2"><span class="de2">282</span></span>283 |
| <span class="xtra li2"><span class="de2">284</span></span>285 |
| <span class="xtra li2"><span class="de2">286</span></span>287 |
| <span class="xtra li2"><span class="de2">288</span></span>289 |
| <span class="xtra li2"><span class="de2">290</span></span>291 |
| <span class="xtra li2"><span class="de2">292</span></span>293 |
| <span class="xtra li2"><span class="de2">294</span></span>295 |
| <span class="xtra li2"><span class="de2">296</span></span>297 |
| <span class="xtra li2"><span class="de2">298</span></span>299 |
| <span class="xtra li2"><span class="de2">300</span></span>301 |
| <span class="xtra li2"><span class="de2">302</span></span>303 |
| <span class="xtra li2"><span class="de2">304</span></span>305 |
| <span class="xtra li2"><span class="de2">306</span></span>307 |
| <span class="xtra li2"><span class="de2">308</span></span>309 |
| <span class="xtra li2"><span class="de2">310</span></span>311 |
| <span class="xtra li2"><span class="de2">312</span></span>313 |
| <span class="xtra li2"><span class="de2">314</span></span>315 |
| <span class="xtra li2"><span class="de2">316</span></span>317 |
| <span class="xtra li2"><span class="de2">318</span></span>319 |
| <span class="xtra li2"><span class="de2">320</span></span>321 |
| <span class="xtra li2"><span class="de2">322</span></span>323 |
| <span class="xtra li2"><span class="de2">324</span></span>325 |
| <span class="xtra li2"><span class="de2">326</span></span>327 |
| <span class="xtra li2"><span class="de2">328</span></span>329 |
| <span class="xtra li2"><span class="de2">330</span></span>331 |
| <span class="xtra li2"><span class="de2">332</span></span>333 |
| <span class="xtra li2"><span class="de2">334</span></span>335 |
| <span class="xtra li2"><span class="de2">336</span></span>337 |
| <span class="xtra li2"><span class="de2">338</span></span>339 |
| <span class="xtra li2"><span class="de2">340</span></span>341 |
| <span class="xtra li2"><span class="de2">342</span></span>343 |
| <span class="xtra li2"><span class="de2">344</span></span>345 |
| <span class="xtra li2"><span class="de2">346</span></span>347 |
| <span class="xtra li2"><span class="de2">348</span></span>349 |
| <span class="xtra li2"><span class="de2">350</span></span>351 |
| <span class="xtra li2"><span class="de2">352</span></span>353 |
| <span class="xtra li2"><span class="de2">354</span></span>355 |
| <span class="xtra li2"><span class="de2">356</span></span>357 |
| <span class="xtra li2"><span class="de2">358</span></span>359 |
| <span class="xtra li2"><span class="de2">360</span></span>361 |
| <span class="xtra li2"><span class="de2">362</span></span>363 |
| <span class="xtra li2"><span class="de2">364</span></span>365 |
| <span class="xtra li2"><span class="de2">366</span></span>367 |
| <span class="xtra li2"><span class="de2">368</span></span>369 |
| <span class="xtra li2"><span class="de2">370</span></span>371 |
| <span class="xtra li2"><span class="de2">372</span></span>373 |
| <span class="xtra li2"><span class="de2">374</span></span>375 |
| <span class="xtra li2"><span class="de2">376</span></span>377 |
| <span class="xtra li2"><span class="de2">378</span></span>379 |
| <span class="xtra li2"><span class="de2">380</span></span>381 |
| <span class="xtra li2"><span class="de2">382</span></span>383 |
| <span class="xtra li2"><span class="de2">384</span></span>385 |
| <span class="xtra li2"><span class="de2">386</span></span>387 |
| <span class="xtra li2"><span class="de2">388</span></span>389 |
| <span class="xtra li2"><span class="de2">390</span></span>391 |
| <span class="xtra li2"><span class="de2">392</span></span>393 |
| <span class="xtra li2"><span class="de2">394</span></span>395 |
| <span class="xtra li2"><span class="de2">396</span></span>397 |
| <span class="xtra li2"><span class="de2">398</span></span>399 |
| <span class="xtra li2"><span class="de2">400</span></span>401 |
| <span class="xtra li2"><span class="de2">402</span></span>403 |
| <span class="xtra li2"><span class="de2">404</span></span>405 |
| <span class="xtra li2"><span class="de2">406</span></span>407 |
| <span class="xtra li2"><span class="de2">408</span></span>409 |
| <span class="xtra li2"><span class="de2">410</span></span>411 |
| <span class="xtra li2"><span class="de2">412</span></span>413 |
| <span class="xtra li2"><span class="de2">414</span></span>415 |
| <span class="xtra li2"><span class="de2">416</span></span>417 |
| <span class="xtra li2"><span class="de2">418</span></span>419 |
| <span class="xtra li2"><span class="de2">420</span></span>421 |
| <span class="xtra li2"><span class="de2">422</span></span>423 |
| <span class="xtra li2"><span class="de2">424</span></span>425 |
| <span class="xtra li2"><span class="de2">426</span></span>427 |
| <span class="xtra li2"><span class="de2">428</span></span>429 |
| <span class="xtra li2"><span class="de2">430</span></span>431 |
| <span class="xtra li2"><span class="de2">432</span></span>433 |
| <span class="xtra li2"><span class="de2">434</span></span>435 |
| <span class="xtra li2"><span class="de2">436</span></span>437 |
| <span class="xtra li2"><span class="de2">438</span></span>439 |
| <span class="xtra li2"><span class="de2">440</span></span>441 |
| <span class="xtra li2"><span class="de2">442</span></span>443 |
| <span class="xtra li2"><span class="de2">444</span></span>445 |
| <span class="xtra li2"><span class="de2">446</span></span>447 |
| <span class="xtra li2"><span class="de2">448</span></span>449 |
| <span class="xtra li2"><span class="de2">450</span></span>451 |
| <span class="xtra li2"><span class="de2">452</span></span>453 |
| <span class="xtra li2"><span class="de2">454</span></span>455 |
| <span class="xtra li2"><span class="de2">456</span></span>457 |
| <span class="xtra li2"><span class="de2">458</span></span>459 |
| <span class="xtra li2"><span class="de2">460</span></span>461 |
| <span class="xtra li2"><span class="de2">462</span></span>463 |
| <span class="xtra li2"><span class="de2">464</span></span>465 |
| <span class="xtra li2"><span class="de2">466</span></span>467 |
| <span class="xtra li2"><span class="de2">468</span></span>469 |
| <span class="xtra li2"><span class="de2">470</span></span>471 |
| <span class="xtra li2"><span class="de2">472</span></span>473 |
| <span class="xtra li2"><span class="de2">474</span></span>475 |
| <span class="xtra li2"><span class="de2">476</span></span>477 |
| <span class="xtra li2"><span class="de2">478</span></span>479 |
| <span class="xtra li2"><span class="de2">480</span></span>481 |
| <span class="xtra li2"><span class="de2">482</span></span>483 |
| <span class="xtra li2"><span class="de2">484</span></span>485 |
| <span class="xtra li2"><span class="de2">486</span></span>487 |
| <span class="xtra li2"><span class="de2">488</span></span>489 |
| <span class="xtra li2"><span class="de2">490</span></span>491 |
| <span class="xtra li2"><span class="de2">492</span></span>493 |
| <span class="xtra li2"><span class="de2">494</span></span>495 |
| <span class="xtra li2"><span class="de2">496</span></span>497 |
| <span class="xtra li2"><span class="de2">498</span></span>499 |
| <span class="xtra li2"><span class="de2">500</span></span>501 |
| <span class="xtra li2"><span class="de2">502</span></span>503 |
| <span class="xtra li2"><span class="de2">504</span></span>505 |
| <span class="xtra li2"><span class="de2">506</span></span>507 |
| <span class="xtra li2"><span class="de2">508</span></span>509 |
| <span class="xtra li2"><span class="de2">510</span></span>511 |
| <span class="xtra li2"><span class="de2">512</span></span>513 |
| <span class="xtra li2"><span class="de2">514</span></span>515 |
| <span class="xtra li2"><span class="de2">516</span></span>517 |
| <span class="xtra li2"><span class="de2">518</span></span>519 |
| <span class="xtra li2"><span class="de2">520</span></span>521 |
| <span class="xtra li2"><span class="de2">522</span></span>523 |
| <span class="xtra li2"><span class="de2">524</span></span>525 |
| <span class="xtra li2"><span class="de2">526</span></span>527 |
| <span class="xtra li2"><span class="de2">528</span></span>529 |
| <span class="xtra li2"><span class="de2">530</span></span>531 |
| <span class="xtra li2"><span class="de2">532</span></span>533 |
| <span class="xtra li2"><span class="de2">534</span></span>535 |
| <span class="xtra li2"><span class="de2">536</span></span>537 |
| <span class="xtra li2"><span class="de2">538</span></span>539 |
| <span class="xtra li2"><span class="de2">540</span></span>541 |
| <span class="xtra li2"><span class="de2">542</span></span>543 |
| <span class="xtra li2"><span class="de2">544</span></span>545 |
| <span class="xtra li2"><span class="de2">546</span></span>547 |
| <span class="xtra li2"><span class="de2">548</span></span>549 |
| <span class="xtra li2"><span class="de2">550</span></span>551 |
| <span class="xtra li2"><span class="de2">552</span></span>553 |
| <span class="xtra li2"><span class="de2">554</span></span>555 |
| <span class="xtra li2"><span class="de2">556</span></span>557 |
| <span class="xtra li2"><span class="de2">558</span></span>559 |
| <span class="xtra li2"><span class="de2">560</span></span>561 |
| <span class="xtra li2"><span class="de2">562</span></span>563 |
| <span class="xtra li2"><span class="de2">564</span></span>565 |
| <span class="xtra li2"><span class="de2">566</span></span>567 |
| <span class="xtra li2"><span class="de2">568</span></span>569 |
| <span class="xtra li2"><span class="de2">570</span></span>571 |
| <span class="xtra li2"><span class="de2">572</span></span>573 |
| <span class="xtra li2"><span class="de2">574</span></span>575 |
| <span class="xtra li2"><span class="de2">576</span></span>577 |
| <span class="xtra li2"><span class="de2">578</span></span>579 |
| <span class="xtra li2"><span class="de2">580</span></span>581 |
| <span class="xtra li2"><span class="de2">582</span></span>583 |
| <span class="xtra li2"><span class="de2">584</span></span>585 |
| <span class="xtra li2"><span class="de2">586</span></span>587 |
| <span class="xtra li2"><span class="de2">588</span></span>589 |
| <span class="xtra li2"><span class="de2">590</span></span>591 |
| <span class="xtra li2"><span class="de2">592</span></span>593 |
| <span class="xtra li2"><span class="de2">594</span></span>595 |
| <span class="xtra li2"><span class="de2">596</span></span>597 |
| <span class="xtra li2"><span class="de2">598</span></span>599 |
| <span class="xtra li2"><span class="de2">600</span></span>601 |
| <span class="xtra li2"><span class="de2">602</span></span>603 |
| <span class="xtra li2"><span class="de2">604</span></span>605 |
| <span class="xtra li2"><span class="de2">606</span></span>607 |
| <span class="xtra li2"><span class="de2">608</span></span>609 |
| <span class="xtra li2"><span class="de2">610</span></span>611 |
| <span class="xtra li2"><span class="de2">612</span></span>613 |
| <span class="xtra li2"><span class="de2">614</span></span>615 |
| <span class="xtra li2"><span class="de2">616</span></span>617 |
| <span class="xtra li2"><span class="de2">618</span></span>619 |
| <span class="xtra li2"><span class="de2">620</span></span>621 |
| <span class="xtra li2"><span class="de2">622</span></span>623 |
| <span class="xtra li2"><span class="de2">624</span></span>625 |
| <span class="xtra li2"><span class="de2">626</span></span>627 |
| <span class="xtra li2"><span class="de2">628</span></span>629 |
| <span class="xtra li2"><span class="de2">630</span></span>631 |
| <span class="xtra li2"><span class="de2">632</span></span>633 |
| <span class="xtra li2"><span class="de2">634</span></span>635 |
| <span class="xtra li2"><span class="de2">636</span></span>637 |
| <span class="xtra li2"><span class="de2">638</span></span>639 |
| <span class="xtra li2"><span class="de2">640</span></span>641 |
| <span class="xtra li2"><span class="de2">642</span></span>643 |
| <span class="xtra li2"><span class="de2">644</span></span>645 |
| <span class="xtra li2"><span class="de2">646</span></span>647 |
| <span class="xtra li2"><span class="de2">648</span></span>649 |
| <span class="xtra li2"><span class="de2">650</span></span>651 |
| <span class="xtra li2"><span class="de2">652</span></span>653 |
| <span class="xtra li2"><span class="de2">654</span></span>655 |
| <span class="xtra li2"><span class="de2">656</span></span>657 |
| <span class="xtra li2"><span class="de2">658</span></span>659 |
| <span class="xtra li2"><span class="de2">660</span></span>661 |
| <span class="xtra li2"><span class="de2">662</span></span>663 |
| <span class="xtra li2"><span class="de2">664</span></span>665 |
| <span class="xtra li2"><span class="de2">666</span></span>667 |
| <span class="xtra li2"><span class="de2">668</span></span>669 |
| <span class="xtra li2"><span class="de2">670</span></span>671 |
| <span class="xtra li2"><span class="de2">672</span></span>673 |
| <span class="xtra li2"><span class="de2">674</span></span>675 |
| <span class="xtra li2"><span class="de2">676</span></span>677 |
| <span class="xtra li2"><span class="de2">678</span></span>679 |
| <span class="xtra li2"><span class="de2">680</span></span>681 |
| <span class="xtra li2"><span class="de2">682</span></span>683 |
| <span class="xtra li2"><span class="de2">684</span></span>685 |
| <span class="xtra li2"><span class="de2">686</span></span>687 |
| <span class="xtra li2"><span class="de2">688</span></span>689 |
| <span class="xtra li2"><span class="de2">690</span></span>691 |
| <span class="xtra li2"><span class="de2">692</span></span>693 |
| <span class="xtra li2"><span class="de2">694</span></span>695 |
| <span class="xtra li2"><span class="de2">696</span></span>697 |
| <span class="xtra li2"><span class="de2">698</span></span>699 |
| <span class="xtra li2"><span class="de2">700</span></span>701 |
| <span class="xtra li2"><span class="de2">702</span></span>703 |
| <span class="xtra li2"><span class="de2">704</span></span>705 |
| <span class="xtra li2"><span class="de2">706</span></span>707 |
| <span class="xtra li2"><span class="de2">708</span></span>709 |
| <span class="xtra li2"><span class="de2">710</span></span>711 |
| <span class="xtra li2"><span class="de2">712</span></span>713 |
| <span class="xtra li2"><span class="de2">714</span></span>715 |
| <span class="xtra li2"><span class="de2">716</span></span>717 |
| <span class="xtra li2"><span class="de2">718</span></span>719 |
| <span class="xtra li2"><span class="de2">720</span></span>721 |
| <span class="xtra li2"><span class="de2">722</span></span>723 |
| <span class="xtra li2"><span class="de2">724</span></span>725 |
| <span class="xtra li2"><span class="de2">726</span></span>727 |
| <span class="xtra li2"><span class="de2">728</span></span>729 |
| <span class="xtra li2"><span class="de2">730</span></span>731 |
| <span class="xtra li2"><span class="de2">732</span></span>733 |
| <span class="xtra li2"><span class="de2">734</span></span>735 |
| <span class="xtra li2"><span class="de2">736</span></span>737 |
| <span class="xtra li2"><span class="de2">738</span></span>739 |
| <span class="xtra li2"><span class="de2">740</span></span>741 |
| <span class="xtra li2"><span class="de2">742</span></span>743 |
| <span class="xtra li2"><span class="de2">744</span></span>745 |
| <span class="xtra li2"><span class="de2">746</span></span>747 |
| <span class="xtra li2"><span class="de2">748</span></span>749 |
| <span class="xtra li2"><span class="de2">750</span></span>751 |
| <span class="xtra li2"><span class="de2">752</span></span>753 |
| <span class="xtra li2"><span class="de2">754</span></span>755 |
| <span class="xtra li2"><span class="de2">756</span></span>757 |
| <span class="xtra li2"><span class="de2">758</span></span>759 |
| <span class="xtra li2"><span class="de2">760</span></span>761 |
| <span class="xtra li2"><span class="de2">762</span></span>763 |
| <span class="xtra li2"><span class="de2">764</span></span>765 |
| <span class="xtra li2"><span class="de2">766</span></span>767 |
| <span class="xtra li2"><span class="de2">768</span></span>769 |
| <span class="xtra li2"><span class="de2">770</span></span>771 |
| <span class="xtra li2"><span class="de2">772</span></span>773 |
| <span class="xtra li2"><span class="de2">774</span></span>775 |
| <span class="xtra li2"><span class="de2">776</span></span>777 |
| <span class="xtra li2"><span class="de2">778</span></span>779 |
| <span class="xtra li2"><span class="de2">780</span></span>781 |
| <span class="xtra li2"><span class="de2">782</span></span>783 |
| <span class="xtra li2"><span class="de2">784</span></span>785 |
| <span class="xtra li2"><span class="de2">786</span></span>787 |
| <span class="xtra li2"><span class="de2">788</span></span>789 |
| <span class="xtra li2"><span class="de2">790</span></span>791 |
| <span class="xtra li2"><span class="de2">792</span></span>793 |
| <span class="xtra li2"><span class="de2">794</span></span>795 |
| <span class="xtra li2"><span class="de2">796</span></span>797 |
| <span class="xtra li2"><span class="de2">798</span></span>799 |
| <span class="xtra li2"><span class="de2">800</span></span>801 |
| <span class="xtra li2"><span class="de2">802</span></span>803 |
| <span class="xtra li2"><span class="de2">804</span></span>805 |
| <span class="xtra li2"><span class="de2">806</span></span>807 |
| <span class="xtra li2"><span class="de2">808</span></span>809 |
| <span class="xtra li2"><span class="de2">810</span></span>811 |
| <span class="xtra li2"><span class="de2">812</span></span>813 |
| <span class="xtra li2"><span class="de2">814</span></span>815 |
| <span class="xtra li2"><span class="de2">816</span></span>817 |
| <span class="xtra li2"><span class="de2">818</span></span>819 |
| <span class="xtra li2"><span class="de2">820</span></span>821 |
| <span class="xtra li2"><span class="de2">822</span></span>823 |
| <span class="xtra li2"><span class="de2">824</span></span>825 |
| <span class="xtra li2"><span class="de2">826</span></span>827 |
| <span class="xtra li2"><span class="de2">828</span></span>829 |
| <span class="xtra li2"><span class="de2">830</span></span>831 |
| <span class="xtra li2"><span class="de2">832</span></span>833 |
| <span class="xtra li2"><span class="de2">834</span></span>835 |
| <span class="xtra li2"><span class="de2">836</span></span>837 |
| <span class="xtra li2"><span class="de2">838</span></span>839 |
| <span class="xtra li2"><span class="de2">840</span></span>841 |
| <span class="xtra li2"><span class="de2">842</span></span>843 |
| <span class="xtra li2"><span class="de2">844</span></span>845 |
| <span class="xtra li2"><span class="de2">846</span></span>847 |
| <span class="xtra li2"><span class="de2">848</span></span>849 |
| <span class="xtra li2"><span class="de2">850</span></span>851 |
| <span class="xtra li2"><span class="de2">852</span></span>853 |
| <span class="xtra li2"><span class="de2">854</span></span>855 |
| <span class="xtra li2"><span class="de2">856</span></span>857 |
| <span class="xtra li2"><span class="de2">858</span></span>859 |
| <span class="xtra li2"><span class="de2">860</span></span>861 |
| <span class="xtra li2"><span class="de2">862</span></span>863 |
| <span class="xtra li2"><span class="de2">864</span></span>865 |
| <span class="xtra li2"><span class="de2">866</span></span>867 |
| <span class="xtra li2"><span class="de2">868</span></span>869 |
| <span class="xtra li2"><span class="de2">870</span></span>871 |
| <span class="xtra li2"><span class="de2">872</span></span>873 |
| <span class="xtra li2"><span class="de2">874</span></span>875 |
| <span class="xtra li2"><span class="de2">876</span></span>877 |
| <span class="xtra li2"><span class="de2">878</span></span>879 |
| <span class="xtra li2"><span class="de2">880</span></span>881 |
| <span class="xtra li2"><span class="de2">882</span></span>883 |
| <span class="xtra li2"><span class="de2">884</span></span>885 |
| <span class="xtra li2"><span class="de2">886</span></span>887 |
| <span class="xtra li2"><span class="de2">888</span></span>889 |
| <span class="xtra li2"><span class="de2">890</span></span>891 |
| <span class="xtra li2"><span class="de2">892</span></span>893 |
| <span class="xtra li2"><span class="de2">894</span></span>895 |
| <span class="xtra li2"><span class="de2">896</span></span>897 |
| <span class="xtra li2"><span class="de2">898</span></span>899 |
| <span class="xtra li2"><span class="de2">900</span></span>901 |
| <span class="xtra li2"><span class="de2">902</span></span>903 |
| <span class="xtra li2"><span class="de2">904</span></span>905 |
| <span class="xtra li2"><span class="de2">906</span></span>907 |
| <span class="xtra li2"><span class="de2">908</span></span>909 |
| <span class="xtra li2"><span class="de2">910</span></span>911 |
| <span class="xtra li2"><span class="de2">912</span></span>913 |
| <span class="xtra li2"><span class="de2">914</span></span>915 |
| <span class="xtra li2"><span class="de2">916</span></span>917 |
| <span class="xtra li2"><span class="de2">918</span></span>919 |
| <span class="xtra li2"><span class="de2">920</span></span>921 |
| <span class="xtra li2"><span class="de2">922</span></span>923 |
| <span class="xtra li2"><span class="de2">924</span></span>925 |
| <span class="xtra li2"><span class="de2">926</span></span>927 |
| <span class="xtra li2"><span class="de2">928</span></span>929 |
| <span class="xtra li2"><span class="de2">930</span></span>931 |
| <span class="xtra li2"><span class="de2">932</span></span>933 |
| <span class="xtra li2"><span class="de2">934</span></span>935 |
| <span class="xtra li2"><span class="de2">936</span></span>937 |
| <span class="xtra li2"><span class="de2">938</span></span>939 |
| <span class="xtra li2"><span class="de2">940</span></span>941 |
| <span class="xtra li2"><span class="de2">942</span></span>943 |
| <span class="xtra li2"><span class="de2">944</span></span>945 |
| <span class="xtra li2"><span class="de2">946</span></span>947 |
| <span class="xtra li2"><span class="de2">948</span></span>949 |
| <span class="xtra li2"><span class="de2">950</span></span>951 |
| <span class="xtra li2"><span class="de2">952</span></span>953 |
| <span class="xtra li2"><span class="de2">954</span></span>955 |
| <span class="xtra li2"><span class="de2">956</span></span>957 |
| <span class="xtra li2"><span class="de2">958</span></span>959 |
| <span class="xtra li2"><span class="de2">960</span></span>961 |
| <span class="xtra li2"><span class="de2">962</span></span>963 |
| <span class="xtra li2"><span class="de2">964</span></span>965 |
| <span class="xtra li2"><span class="de2">966</span></span>967 |
| <span class="xtra li2"><span class="de2">968</span></span>969 |
| <span class="xtra li2"><span class="de2">970</span></span>971 |
| <span class="xtra li2"><span class="de2">972</span></span>973 |
| <span class="xtra li2"><span class="de2">974</span></span>975 |
| <span class="xtra li2"><span class="de2">976</span></span>977 |
| <span class="xtra li2"><span class="de2">978</span></span>979 |
| <span class="xtra li2"><span class="de2">980</span></span>981 |
| <span class="xtra li2"><span class="de2">982</span></span>983 |
| <span class="xtra li2"><span class="de2">984</span></span>985 |
| <span class="xtra li2"><span class="de2">986</span></span>987 |
| <span class="xtra li2"><span class="de2">988</span></span>989 |
| <span class="xtra li2"><span class="de2">990</span></span>991 |
| <span class="xtra li2"><span class="de2">992</span></span>993 |
| <span class="xtra li2"><span class="de2">994</span></span>995 |
| <span class="xtra li2"><span class="de2">996</span></span>997 |
| <span class="xtra li2"><span class="de2">998</span></span>999 |
| <span class="xtra li2"><span class="de2">1000</span></span>1001 |
| <span class="xtra li2"><span class="de2">1002</span></span>1003 |
| <span class="xtra li2"><span class="de2">1004</span></span>1005 |
| <span class="xtra li2"><span class="de2">1006</span></span>1007 |
| <span class="xtra li2"><span class="de2">1008</span></span>1009 |
| <span class="xtra li2"><span class="de2">1010</span></span>1011 |
| <span class="xtra li2"><span class="de2">1012</span></span>1013 |
| <span class="xtra li2"><span class="de2">1014</span></span>1015 |
| <span class="xtra li2"><span class="de2">1016</span></span>1017 |
| <span class="xtra li2"><span class="de2">1018</span></span>1019 |
| <span class="xtra li2"><span class="de2">1020</span></span>1021 |
| <span class="xtra li2"><span class="de2">1022</span></span>1023 |
| <span class="xtra li2"><span class="de2">1024</span></span>1025 |
| <span class="xtra li2"><span class="de2">1026</span></span>1027 |
| <span class="xtra li2"><span class="de2">1028</span></span>1029 |
| <span class="xtra li2"><span class="de2">1030</span></span>1031 |
| <span class="xtra li2"><span class="de2">1032</span></span>1033 |
| <span class="xtra li2"><span class="de2">1034</span></span>1035 |
| <span class="xtra li2"><span class="de2">1036</span></span>1037 |
| <span class="xtra li2"><span class="de2">1038</span></span>1039 |
| <span class="xtra li2"><span class="de2">1040</span></span>1041 |
| <span class="xtra li2"><span class="de2">1042</span></span>1043 |
| <span class="xtra li2"><span class="de2">1044</span></span>1045 |
| <span class="xtra li2"><span class="de2">1046</span></span>1047 |
| <span class="xtra li2"><span class="de2">1048</span></span>1049 |
| <span class="xtra li2"><span class="de2">1050</span></span>1051 |
| <span class="xtra li2"><span class="de2">1052</span></span>1053 |
| <span class="xtra li2"><span class="de2">1054</span></span>1055 |
| <span class="xtra li2"><span class="de2">1056</span></span>1057 |
| <span class="xtra li2"><span class="de2">1058</span></span>1059 |
| <span class="xtra li2"><span class="de2">1060</span></span>1061 |
| <span class="xtra li2"><span class="de2">1062</span></span>1063 |
| <span class="xtra li2"><span class="de2">1064</span></span>1065 |
| <span class="xtra li2"><span class="de2">1066</span></span>1067 |
| <span class="xtra li2"><span class="de2">1068</span></span>1069 |
| <span class="xtra li2"><span class="de2">1070</span></span>1071 |
| <span class="xtra li2"><span class="de2">1072</span></span>1073 |
| <span class="xtra li2"><span class="de2">1074</span></span>1075 |
| <span class="xtra li2"><span class="de2">1076</span></span>1077 |
| <span class="xtra li2"><span class="de2">1078</span></span>1079 |
| <span class="xtra li2"><span class="de2">1080</span></span>1081 |
| <span class="xtra li2"><span class="de2">1082</span></span>1083 |
| <span class="xtra li2"><span class="de2">1084</span></span>1085 |
| <span class="xtra li2"><span class="de2">1086</span></span>1087 |
| <span class="xtra li2"><span class="de2">1088</span></span>1089 |
| <span class="xtra li2"><span class="de2">1090</span></span>1091 |
| <span class="xtra li2"><span class="de2">1092</span></span>1093 |
| <span class="xtra li2"><span class="de2">1094</span></span></pre></td><td class="de1"><pre class="de1"><span class="kw2"><?php</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI">/*************************************************************************************</span></span></span><span class="coMULTI"> * php.php</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * --------</span></span></span><span class="coMULTI"> * Author: Nigel McNie (nigel@geshi.org)</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)</span></span></span><span class="coMULTI"> * Release Version: 1.0.8.3</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * Date Started: 2004/06/20</span></span></span><span class="coMULTI"> *</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * PHP language file for GeSHi.</span></span></span><span class="coMULTI"> *</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * CHANGES</span></span></span><span class="coMULTI"> * -------</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * 2008/05/23 (1.0.7.22)</span></span></span><span class="coMULTI"> * - Added description of extra language features (SF#1970248)</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * 2004/11/25 (1.0.3)</span></span></span><span class="coMULTI"> * - Added support for multiple object splitters</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * - Fixed &new problem</span></span></span><span class="coMULTI"> * 2004/10/27 (1.0.2)</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * - Added URL support</span></span></span><span class="coMULTI"> * - Added extra constants</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * 2004/08/05 (1.0.1)</span></span></span><span class="coMULTI"> * - Added support for symbols</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * 2004/07/14 (1.0.0)</span></span></span><span class="coMULTI"> * - First Release</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * TODO (updated 2004/07/14)</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * -------------------------</span></span></span><span class="coMULTI"> * * Make sure the last few function I may have missed</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * (like eval()) are included for highlighting</span></span></span><span class="coMULTI"> * * Split to several files - php4, php5 etc</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> *************************************************************************************</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * This file is part of GeSHi.</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * GeSHi is free software; you can redistribute it and/or modify</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * it under the terms of the GNU General Public License as published by</span></span></span><span class="coMULTI"> * the Free Software Foundation; either version 2 of the License, or</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * (at your option) any later version.</span></span></span><span class="coMULTI"> *</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * GeSHi is distributed in the hope that it will be useful,</span></span></span><span class="coMULTI"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></span></span><span class="coMULTI"> * GNU General Public License for more details.</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * You should have received a copy of the GNU General Public License</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * along with GeSHi; if not, write to the Free Software</span></span></span><span class="coMULTI"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> ************************************************************************************/</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$language_data</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'LANG_NAME'</span> <span class="sy0">=></span> <span class="st_h">'PHP'</span><span class="sy0">,</span></span></span> <span class="st_h">'COMMENT_SINGLE'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'//'</span><span class="sy0">,</span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'#'</span><span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'COMMENT_MULTI'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'/*'</span> <span class="sy0">=></span> <span class="st_h">'*/'</span><span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'HARDQUOTE'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st0">"'"</span><span class="sy0">,</span> <span class="st0">"'"</span><span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'HARDESCAPE'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st0">"'"</span><span class="sy0">,</span> <span class="st0">"<span class="es1">\\</span>"</span><span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'HARDCHAR'</span> <span class="sy0">=></span> <span class="st0">"<span class="es1">\\</span>"</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'COMMENT_REGEXP'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="co1">//Heredoc and Nowdoc syntax</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">'/<<<\s*?(\'?)([a-zA-Z0-9]+?)\1[^\n]*?\\n.*\\n\\2(?![a-zA-Z0-9])/siU'</span><span class="sy0">,</span></span></span> <span class="co1">// phpdoc comments</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st_h">'#/\*\*(?![\*\/]).*\*/#sU'</span><span class="sy0">,</span></span></span> <span class="co1">// Advanced # handling</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st0">"/#.*?(?:(?=\?\>)|^)/smi"</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'CASE_KEYWORDS'</span> <span class="sy0">=></span> GESHI_CAPS_NO_CHANGE<span class="sy0">,</span></span></span> <span class="st_h">'QUOTEMARKS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'"'</span><span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ESCAPE_CHAR'</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> <span class="st_h">'ESCAPE_REGEXP'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">//Simple Single Char Escapes</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st0">"#<span class="es1">\\</span><span class="es1">\\</span>[nfrtv<span class="es1">\$</span><span class="es1">\"</span><span class="es1">\n</span><span class="es1">\\</span><span class="es1">\\</span>]#i"</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">//Hexadecimal Char Specs</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st0">"#<span class="es1">\\</span><span class="es1">\\</span>x[\da-fA-F]{1,2}#i"</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">//Octal Char Specs</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st0">"#<span class="es1">\\</span><span class="es1">\\</span>[0-7]{1,3}#"</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">//String Parsing of Variable Names</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st0">"#<span class="es1">\\</span>$[a-z0-9_]+(?:<span class="es1">\\</span>[[a-z0-9_]+<span class="es1">\\</span>]|->[a-z0-9_]+)?|(?:<span class="es1">\\</span>{<span class="es1">\\</span>$|<span class="es1">\\</span>$<span class="es1">\\</span>{)[a-z0-9_]+(?:<span class="es1">\\</span>[('?)[a-z0-9_]*<span class="es1">\\</span>1<span class="es1">\\</span>]|->[a-z0-9_]+)*<span class="es1">\\</span>}#i"</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">//Experimental extension supporting cascaded {${$var}} syntax</span></span></span> <span class="nu0">5</span> <span class="sy0">=></span> <span class="st0">"#<span class="es1">\$</span>[a-z0-9_]+(?:\[[a-z0-9_]+\]|->[a-z0-9_]+)?|(?:\{<span class="es1">\$</span>|<span class="es1">\$</span>\{)[a-z0-9_]+(?:\[('?)[a-z0-9_]*<span class="es1">\\</span>1\]|->[a-z0-9_]+)*\}|\{<span class="es1">\$</span>(?R)\}#i"</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">//Format String support in ""-Strings</span></span></span> <span class="nu0">6</span> <span class="sy0">=></span> <span class="st0">"#%(?:%|(?:\d+<span class="es1">\\</span><span class="es1">\\</span><span class="es1">\\</span><span class="es1">\$</span>)?<span class="es1">\\</span>+?(?:<span class="es2">\x20</span>|0|'.)?-?(?:\d+|<span class="es1">\\</span>*)?(?:\.\d+)?[bcdefFosuxX])#"</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'NUMBERS'</span> <span class="sy0">=></span> |
| <span class="xtra li2"><span class="de2"> GESHI_NUMBER_INT_BASIC <span class="sy0">|</span> GESHI_NUMBER_OCT_PREFIX <span class="sy0">|</span> GESHI_NUMBER_HEX_PREFIX <span class="sy0">|</span></span></span> GESHI_NUMBER_FLT_SCI_ZERO<span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'KEYWORDS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'as'</span><span class="sy0">,</span><span class="st_h">'break'</span><span class="sy0">,</span><span class="st_h">'case'</span><span class="sy0">,</span><span class="st_h">'continue'</span><span class="sy0">,</span><span class="st_h">'default'</span><span class="sy0">,</span><span class="st_h">'do'</span><span class="sy0">,</span><span class="st_h">'else'</span><span class="sy0">,</span><span class="st_h">'elseif'</span><span class="sy0">,</span></span></span> <span class="st_h">'endfor'</span><span class="sy0">,</span><span class="st_h">'endforeach'</span><span class="sy0">,</span><span class="st_h">'endif'</span><span class="sy0">,</span><span class="st_h">'endswitch'</span><span class="sy0">,</span><span class="st_h">'endwhile'</span><span class="sy0">,</span><span class="st_h">'for'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'foreach'</span><span class="sy0">,</span><span class="st_h">'if'</span><span class="sy0">,</span><span class="st_h">'include'</span><span class="sy0">,</span><span class="st_h">'include_once'</span><span class="sy0">,</span><span class="st_h">'require'</span><span class="sy0">,</span><span class="st_h">'require_once'</span><span class="sy0">,</span></span></span> <span class="st_h">'return'</span><span class="sy0">,</span><span class="st_h">'switch'</span><span class="sy0">,</span><span class="st_h">'while'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> </span></span> <span class="st_h">'echo'</span><span class="sy0">,</span><span class="st_h">'print'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'&amp;new'</span><span class="sy0">,</span><span class="st_h">'&lt;/script&gt;'</span><span class="sy0">,</span><span class="st_h">'&lt;?php'</span><span class="sy0">,</span><span class="st_h">'&lt;script language'</span><span class="sy0">,</span></span></span> <span class="st_h">'class'</span><span class="sy0">,</span><span class="st_h">'const'</span><span class="sy0">,</span><span class="st_h">'declare'</span><span class="sy0">,</span><span class="st_h">'extends'</span><span class="sy0">,</span><span class="st_h">'function'</span><span class="sy0">,</span><span class="st_h">'global'</span><span class="sy0">,</span><span class="st_h">'interface'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'namespace'</span><span class="sy0">,</span><span class="st_h">'new'</span><span class="sy0">,</span><span class="st_h">'private'</span><span class="sy0">,</span><span class="st_h">'public'</span><span class="sy0">,</span><span class="st_h">'self'</span><span class="sy0">,</span><span class="st_h">'var'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'abs'</span><span class="sy0">,</span><span class="st_h">'acos'</span><span class="sy0">,</span><span class="st_h">'acosh'</span><span class="sy0">,</span><span class="st_h">'addcslashes'</span><span class="sy0">,</span><span class="st_h">'addslashes'</span><span class="sy0">,</span><span class="st_h">'aggregate'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'aggregate_methods'</span><span class="sy0">,</span><span class="st_h">'aggregate_methods_by_list'</span><span class="sy0">,</span></span></span> <span class="st_h">'aggregate_methods_by_regexp'</span><span class="sy0">,</span><span class="st_h">'aggregate_properties'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'aggregate_properties_by_list'</span><span class="sy0">,</span><span class="st_h">'aggregate_properties_by_regexp'</span><span class="sy0">,</span></span></span> <span class="st_h">'aggregation_info'</span><span class="sy0">,</span><span class="st_h">'apache_child_terminate'</span><span class="sy0">,</span><span class="st_h">'apache_get_modules'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'apache_get_version'</span><span class="sy0">,</span><span class="st_h">'apache_getenv'</span><span class="sy0">,</span><span class="st_h">'apache_lookup_uri'</span><span class="sy0">,</span></span></span> <span class="st_h">'apache_note'</span><span class="sy0">,</span><span class="st_h">'apache_request_headers'</span><span class="sy0">,</span><span class="st_h">'apache_response_headers'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'apache_setenv'</span><span class="sy0">,</span><span class="st_h">'array'</span><span class="sy0">,</span><span class="st_h">'array_change_key_case'</span><span class="sy0">,</span><span class="st_h">'array_chunk'</span><span class="sy0">,</span></span></span> <span class="st_h">'array_combine'</span><span class="sy0">,</span><span class="st_h">'array_count_values'</span><span class="sy0">,</span><span class="st_h">'array_diff'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'array_diff_assoc'</span><span class="sy0">,</span><span class="st_h">'array_diff_key'</span><span class="sy0">,</span><span class="st_h">'array_diff_uassoc'</span><span class="sy0">,</span></span></span> <span class="st_h">'array_diff_ukey'</span><span class="sy0">,</span><span class="st_h">'array_fill'</span><span class="sy0">,</span><span class="st_h">'array_fill_keys'</span><span class="sy0">,</span><span class="st_h">'array_filter'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'array_flip'</span><span class="sy0">,</span><span class="st_h">'array_intersect'</span><span class="sy0">,</span><span class="st_h">'array_intersect_assoc'</span><span class="sy0">,</span></span></span> <span class="st_h">'array_intersect_key'</span><span class="sy0">,</span><span class="st_h">'array_intersect_uassoc'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'array_intersect_ukey'</span><span class="sy0">,</span><span class="st_h">'array_key_exists'</span><span class="sy0">,</span><span class="st_h">'array_keys'</span><span class="sy0">,</span><span class="st_h">'array_map'</span><span class="sy0">,</span></span></span> <span class="st_h">'array_merge'</span><span class="sy0">,</span><span class="st_h">'array_merge_recursive'</span><span class="sy0">,</span><span class="st_h">'array_multisort'</span><span class="sy0">,</span><span class="st_h">'array_pad'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'array_pop'</span><span class="sy0">,</span><span class="st_h">'array_product'</span><span class="sy0">,</span><span class="st_h">'array_push'</span><span class="sy0">,</span><span class="st_h">'array_rand'</span><span class="sy0">,</span></span></span> <span class="st_h">'array_reduce'</span><span class="sy0">,</span><span class="st_h">'array_reverse'</span><span class="sy0">,</span><span class="st_h">'array_search'</span><span class="sy0">,</span><span class="st_h">'array_shift'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'array_slice'</span><span class="sy0">,</span><span class="st_h">'array_splice'</span><span class="sy0">,</span><span class="st_h">'array_sum'</span><span class="sy0">,</span><span class="st_h">'array_udiff'</span><span class="sy0">,</span></span></span> <span class="st_h">'array_udiff_assoc'</span><span class="sy0">,</span><span class="st_h">'array_udiff_uassoc'</span><span class="sy0">,</span><span class="st_h">'array_uintersect'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'array_uintersect_assoc'</span><span class="sy0">,</span><span class="st_h">'array_uintersect_uassoc'</span><span class="sy0">,</span><span class="st_h">'array_unique'</span><span class="sy0">,</span></span></span> <span class="st_h">'array_unshift'</span><span class="sy0">,</span><span class="st_h">'array_values'</span><span class="sy0">,</span><span class="st_h">'array_walk'</span><span class="sy0">,</span><span class="st_h">'array_walk_recursive'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'arsort'</span><span class="sy0">,</span><span class="st_h">'asin'</span><span class="sy0">,</span><span class="st_h">'asinh'</span><span class="sy0">,</span><span class="st_h">'asort'</span><span class="sy0">,</span><span class="st_h">'assert'</span><span class="sy0">,</span><span class="st_h">'assert_options'</span><span class="sy0">,</span><span class="st_h">'atan'</span><span class="sy0">,</span></span></span> <span class="st_h">'atan2'</span><span class="sy0">,</span><span class="st_h">'atanh'</span><span class="sy0">,</span><span class="st_h">'base_convert'</span><span class="sy0">,</span><span class="st_h">'base64_decode'</span><span class="sy0">,</span><span class="st_h">'base64_encode'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'basename'</span><span class="sy0">,</span><span class="st_h">'bcadd'</span><span class="sy0">,</span><span class="st_h">'bccomp'</span><span class="sy0">,</span><span class="st_h">'bcdiv'</span><span class="sy0">,</span><span class="st_h">'bcmod'</span><span class="sy0">,</span><span class="st_h">'bcmul'</span><span class="sy0">,</span></span></span> <span class="st_h">'bcompiler_load'</span><span class="sy0">,</span><span class="st_h">'bcompiler_load_exe'</span><span class="sy0">,</span><span class="st_h">'bcompiler_parse_class'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'bcompiler_read'</span><span class="sy0">,</span><span class="st_h">'bcompiler_write_class'</span><span class="sy0">,</span><span class="st_h">'bcompiler_write_constant'</span><span class="sy0">,</span></span></span> <span class="st_h">'bcompiler_write_exe_footer'</span><span class="sy0">,</span><span class="st_h">'bcompiler_write_file'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'bcompiler_write_footer'</span><span class="sy0">,</span><span class="st_h">'bcompiler_write_function'</span><span class="sy0">,</span></span></span> <span class="st_h">'bcompiler_write_functions_from_file'</span><span class="sy0">,</span><span class="st_h">'bcompiler_write_header'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'bcompiler_write_included_filename'</span><span class="sy0">,</span><span class="st_h">'bcpow'</span><span class="sy0">,</span><span class="st_h">'bcpowmod'</span><span class="sy0">,</span><span class="st_h">'bcscale'</span><span class="sy0">,</span></span></span> <span class="st_h">'bcsqrt'</span><span class="sy0">,</span><span class="st_h">'bcsub'</span><span class="sy0">,</span><span class="st_h">'bin2hex'</span><span class="sy0">,</span><span class="st_h">'bindec'</span><span class="sy0">,</span><span class="st_h">'bindtextdomain'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'bind_textdomain_codeset'</span><span class="sy0">,</span><span class="st_h">'bitset_empty'</span><span class="sy0">,</span><span class="st_h">'bitset_equal'</span><span class="sy0">,</span></span></span> <span class="st_h">'bitset_excl'</span><span class="sy0">,</span><span class="st_h">'bitset_fill'</span><span class="sy0">,</span><span class="st_h">'bitset_from_array'</span><span class="sy0">,</span><span class="st_h">'bitset_from_hash'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'bitset_from_string'</span><span class="sy0">,</span><span class="st_h">'bitset_in'</span><span class="sy0">,</span><span class="st_h">'bitset_incl'</span><span class="sy0">,</span></span></span> <span class="st_h">'bitset_intersection'</span><span class="sy0">,</span><span class="st_h">'bitset_invert'</span><span class="sy0">,</span><span class="st_h">'bitset_is_empty'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'bitset_subset'</span><span class="sy0">,</span><span class="st_h">'bitset_to_array'</span><span class="sy0">,</span><span class="st_h">'bitset_to_hash'</span><span class="sy0">,</span></span></span> <span class="st_h">'bitset_to_string'</span><span class="sy0">,</span><span class="st_h">'bitset_union'</span><span class="sy0">,</span><span class="st_h">'blenc_encrypt'</span><span class="sy0">,</span><span class="st_h">'bzclose'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'bzcompress'</span><span class="sy0">,</span><span class="st_h">'bzdecompress'</span><span class="sy0">,</span><span class="st_h">'bzerrno'</span><span class="sy0">,</span><span class="st_h">'bzerror'</span><span class="sy0">,</span><span class="st_h">'bzerrstr'</span><span class="sy0">,</span></span></span> <span class="st_h">'bzflush'</span><span class="sy0">,</span><span class="st_h">'bzopen'</span><span class="sy0">,</span><span class="st_h">'bzread'</span><span class="sy0">,</span><span class="st_h">'bzwrite'</span><span class="sy0">,</span><span class="st_h">'cal_days_in_month'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cal_from_jd'</span><span class="sy0">,</span><span class="st_h">'cal_info'</span><span class="sy0">,</span><span class="st_h">'cal_to_jd'</span><span class="sy0">,</span><span class="st_h">'call_user_func'</span><span class="sy0">,</span></span></span> <span class="st_h">'call_user_func_array'</span><span class="sy0">,</span><span class="st_h">'call_user_method'</span><span class="sy0">,</span><span class="st_h">'call_user_method_array'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ceil'</span><span class="sy0">,</span><span class="st_h">'chdir'</span><span class="sy0">,</span><span class="st_h">'checkdate'</span><span class="sy0">,</span><span class="st_h">'checkdnsrr'</span><span class="sy0">,</span><span class="st_h">'chgrp'</span><span class="sy0">,</span><span class="st_h">'chmod'</span><span class="sy0">,</span><span class="st_h">'chop'</span><span class="sy0">,</span></span></span> <span class="st_h">'chown'</span><span class="sy0">,</span><span class="st_h">'chr'</span><span class="sy0">,</span><span class="st_h">'chunk_split'</span><span class="sy0">,</span><span class="st_h">'class_exists'</span><span class="sy0">,</span><span class="st_h">'class_implements'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'class_parents'</span><span class="sy0">,</span><span class="st_h">'classkit_aggregate_methods'</span><span class="sy0">,</span></span></span> <span class="st_h">'classkit_doc_comments'</span><span class="sy0">,</span><span class="st_h">'classkit_import'</span><span class="sy0">,</span><span class="st_h">'classkit_method_add'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'classkit_method_copy'</span><span class="sy0">,</span><span class="st_h">'classkit_method_redefine'</span><span class="sy0">,</span></span></span> <span class="st_h">'classkit_method_remove'</span><span class="sy0">,</span><span class="st_h">'classkit_method_rename'</span><span class="sy0">,</span><span class="st_h">'clearstatcache'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'closedir'</span><span class="sy0">,</span><span class="st_h">'closelog'</span><span class="sy0">,</span><span class="st_h">'com_create_guid'</span><span class="sy0">,</span><span class="st_h">'com_event_sink'</span><span class="sy0">,</span></span></span> <span class="st_h">'com_get_active_object'</span><span class="sy0">,</span><span class="st_h">'com_load_typelib'</span><span class="sy0">,</span><span class="st_h">'com_message_pump'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'com_print_typeinfo'</span><span class="sy0">,</span><span class="st_h">'compact'</span><span class="sy0">,</span><span class="st_h">'confirm_phpdoc_compiled'</span><span class="sy0">,</span></span></span> <span class="st_h">'connection_aborted'</span><span class="sy0">,</span><span class="st_h">'connection_status'</span><span class="sy0">,</span><span class="st_h">'constant'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'convert_cyr_string'</span><span class="sy0">,</span><span class="st_h">'convert_uudecode'</span><span class="sy0">,</span><span class="st_h">'convert_uuencode'</span><span class="sy0">,</span><span class="st_h">'copy'</span><span class="sy0">,</span></span></span> <span class="st_h">'cos'</span><span class="sy0">,</span><span class="st_h">'cosh'</span><span class="sy0">,</span><span class="st_h">'count'</span><span class="sy0">,</span><span class="st_h">'count_chars'</span><span class="sy0">,</span><span class="st_h">'cpdf_add_annotation'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_add_outline'</span><span class="sy0">,</span><span class="st_h">'cpdf_arc'</span><span class="sy0">,</span><span class="st_h">'cpdf_begin_text'</span><span class="sy0">,</span><span class="st_h">'cpdf_circle'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_clip'</span><span class="sy0">,</span><span class="st_h">'cpdf_close'</span><span class="sy0">,</span><span class="st_h">'cpdf_closepath'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_closepath_fill_stroke'</span><span class="sy0">,</span><span class="st_h">'cpdf_closepath_stroke'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_continue_text'</span><span class="sy0">,</span><span class="st_h">'cpdf_curveto'</span><span class="sy0">,</span><span class="st_h">'cpdf_end_text'</span><span class="sy0">,</span><span class="st_h">'cpdf_fill'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_fill_stroke'</span><span class="sy0">,</span><span class="st_h">'cpdf_finalize'</span><span class="sy0">,</span><span class="st_h">'cpdf_finalize_page'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_global_set_document_limits'</span><span class="sy0">,</span><span class="st_h">'cpdf_import_jpeg'</span><span class="sy0">,</span><span class="st_h">'cpdf_lineto'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_moveto'</span><span class="sy0">,</span><span class="st_h">'cpdf_newpath'</span><span class="sy0">,</span><span class="st_h">'cpdf_open'</span><span class="sy0">,</span><span class="st_h">'cpdf_output_buffer'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_page_init'</span><span class="sy0">,</span><span class="st_h">'cpdf_rect'</span><span class="sy0">,</span><span class="st_h">'cpdf_restore'</span><span class="sy0">,</span><span class="st_h">'cpdf_rlineto'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_rmoveto'</span><span class="sy0">,</span><span class="st_h">'cpdf_rotate'</span><span class="sy0">,</span><span class="st_h">'cpdf_rotate_text'</span><span class="sy0">,</span><span class="st_h">'cpdf_save'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_save_to_file'</span><span class="sy0">,</span><span class="st_h">'cpdf_scale'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_action_url'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_set_char_spacing'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_creator'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_current_page'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_set_font'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_font_directories'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_set_font_map_file'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_horiz_scaling'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_set_keywords'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_leading'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_page_animation'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_set_subject'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_text_matrix'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_text_pos'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_set_text_rendering'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_text_rise'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_title'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_set_viewer_preferences'</span><span class="sy0">,</span><span class="st_h">'cpdf_set_word_spacing'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_setdash'</span><span class="sy0">,</span><span class="st_h">'cpdf_setflat'</span><span class="sy0">,</span><span class="st_h">'cpdf_setgray'</span><span class="sy0">,</span><span class="st_h">'cpdf_setgray_fill'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_setgray_stroke'</span><span class="sy0">,</span><span class="st_h">'cpdf_setlinecap'</span><span class="sy0">,</span><span class="st_h">'cpdf_setlinejoin'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_setlinewidth'</span><span class="sy0">,</span><span class="st_h">'cpdf_setmiterlimit'</span><span class="sy0">,</span><span class="st_h">'cpdf_setrgbcolor'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_setrgbcolor_fill'</span><span class="sy0">,</span><span class="st_h">'cpdf_setrgbcolor_stroke'</span><span class="sy0">,</span><span class="st_h">'cpdf_show'</span><span class="sy0">,</span></span></span> <span class="st_h">'cpdf_show_xy'</span><span class="sy0">,</span><span class="st_h">'cpdf_stringwidth'</span><span class="sy0">,</span><span class="st_h">'cpdf_stroke'</span><span class="sy0">,</span><span class="st_h">'cpdf_text'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'cpdf_translate'</span><span class="sy0">,</span><span class="st_h">'crack_check'</span><span class="sy0">,</span><span class="st_h">'crack_closedict'</span><span class="sy0">,</span></span></span> <span class="st_h">'crack_getlastmessage'</span><span class="sy0">,</span><span class="st_h">'crack_opendict'</span><span class="sy0">,</span><span class="st_h">'crc32'</span><span class="sy0">,</span><span class="st_h">'create_function'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'crypt'</span><span class="sy0">,</span><span class="st_h">'ctype_alnum'</span><span class="sy0">,</span><span class="st_h">'ctype_alpha'</span><span class="sy0">,</span><span class="st_h">'ctype_cntrl'</span><span class="sy0">,</span><span class="st_h">'ctype_digit'</span><span class="sy0">,</span></span></span> <span class="st_h">'ctype_graph'</span><span class="sy0">,</span><span class="st_h">'ctype_lower'</span><span class="sy0">,</span><span class="st_h">'ctype_print'</span><span class="sy0">,</span><span class="st_h">'ctype_punct'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ctype_space'</span><span class="sy0">,</span><span class="st_h">'ctype_upper'</span><span class="sy0">,</span><span class="st_h">'ctype_xdigit'</span><span class="sy0">,</span><span class="st_h">'curl_close'</span><span class="sy0">,</span></span></span> <span class="st_h">'curl_copy_handle'</span><span class="sy0">,</span><span class="st_h">'curl_errno'</span><span class="sy0">,</span><span class="st_h">'curl_error'</span><span class="sy0">,</span><span class="st_h">'curl_exec'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'curl_getinfo'</span><span class="sy0">,</span><span class="st_h">'curl_init'</span><span class="sy0">,</span><span class="st_h">'curl_multi_add_handle'</span><span class="sy0">,</span></span></span> <span class="st_h">'curl_multi_close'</span><span class="sy0">,</span><span class="st_h">'curl_multi_exec'</span><span class="sy0">,</span><span class="st_h">'curl_multi_getcontent'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'curl_multi_info_read'</span><span class="sy0">,</span><span class="st_h">'curl_multi_init'</span><span class="sy0">,</span><span class="st_h">'curl_multi_remove_handle'</span><span class="sy0">,</span></span></span> <span class="st_h">'curl_multi_select'</span><span class="sy0">,</span><span class="st_h">'curl_setopt'</span><span class="sy0">,</span><span class="st_h">'curl_setopt_array'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'curl_version'</span><span class="sy0">,</span><span class="st_h">'current'</span><span class="sy0">,</span><span class="st_h">'cvsclient_connect'</span><span class="sy0">,</span><span class="st_h">'cvsclient_log'</span><span class="sy0">,</span></span></span> <span class="st_h">'cvsclient_login'</span><span class="sy0">,</span><span class="st_h">'cvsclient_retrieve'</span><span class="sy0">,</span><span class="st_h">'date'</span><span class="sy0">,</span><span class="st_h">'date_create'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'date_date_set'</span><span class="sy0">,</span><span class="st_h">'date_default_timezone_get'</span><span class="sy0">,</span></span></span> <span class="st_h">'date_default_timezone_set'</span><span class="sy0">,</span><span class="st_h">'date_format'</span><span class="sy0">,</span><span class="st_h">'date_isodate_set'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'date_modify'</span><span class="sy0">,</span><span class="st_h">'date_offset_get'</span><span class="sy0">,</span><span class="st_h">'date_parse'</span><span class="sy0">,</span><span class="st_h">'date_sun_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'date_sunrise'</span><span class="sy0">,</span><span class="st_h">'date_sunset'</span><span class="sy0">,</span><span class="st_h">'date_time_set'</span><span class="sy0">,</span><span class="st_h">'date_timezone_get'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'date_timezone_set'</span><span class="sy0">,</span><span class="st_h">'db_id_list'</span><span class="sy0">,</span><span class="st_h">'dba_close'</span><span class="sy0">,</span><span class="st_h">'dba_delete'</span><span class="sy0">,</span></span></span> <span class="st_h">'dba_exists'</span><span class="sy0">,</span><span class="st_h">'dba_fetch'</span><span class="sy0">,</span><span class="st_h">'dba_firstkey'</span><span class="sy0">,</span><span class="st_h">'dba_handlers'</span><span class="sy0">,</span><span class="st_h">'dba_insert'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dba_key_split'</span><span class="sy0">,</span><span class="st_h">'dba_list'</span><span class="sy0">,</span><span class="st_h">'dba_nextkey'</span><span class="sy0">,</span><span class="st_h">'dba_open'</span><span class="sy0">,</span><span class="st_h">'dba_optimize'</span><span class="sy0">,</span></span></span> <span class="st_h">'dba_popen'</span><span class="sy0">,</span><span class="st_h">'dba_replace'</span><span class="sy0">,</span><span class="st_h">'dba_sync'</span><span class="sy0">,</span><span class="st_h">'dbase_add_record'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dbase_close'</span><span class="sy0">,</span><span class="st_h">'dbase_create'</span><span class="sy0">,</span><span class="st_h">'dbase_delete_record'</span><span class="sy0">,</span></span></span> <span class="st_h">'dbase_get_header_info'</span><span class="sy0">,</span><span class="st_h">'dbase_get_record'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dbase_get_record_with_names'</span><span class="sy0">,</span><span class="st_h">'dbase_numfields'</span><span class="sy0">,</span><span class="st_h">'dbase_numrecords'</span><span class="sy0">,</span></span></span> <span class="st_h">'dbase_open'</span><span class="sy0">,</span><span class="st_h">'dbase_pack'</span><span class="sy0">,</span><span class="st_h">'dbase_replace_record'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dbg_get_all_contexts'</span><span class="sy0">,</span><span class="st_h">'dbg_get_all_module_names'</span><span class="sy0">,</span></span></span> <span class="st_h">'dbg_get_all_source_lines'</span><span class="sy0">,</span><span class="st_h">'dbg_get_context_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dbg_get_module_name'</span><span class="sy0">,</span><span class="st_h">'dbg_get_profiler_results'</span><span class="sy0">,</span></span></span> <span class="st_h">'dbg_get_source_context'</span><span class="sy0">,</span><span class="st_h">'dblist'</span><span class="sy0">,</span><span class="st_h">'dbmclose'</span><span class="sy0">,</span><span class="st_h">'dbmdelete'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dbmexists'</span><span class="sy0">,</span><span class="st_h">'dbmfetch'</span><span class="sy0">,</span><span class="st_h">'dbmfirstkey'</span><span class="sy0">,</span><span class="st_h">'dbminsert'</span><span class="sy0">,</span><span class="st_h">'dbmnextkey'</span><span class="sy0">,</span></span></span> <span class="st_h">'dbmopen'</span><span class="sy0">,</span><span class="st_h">'dbmreplace'</span><span class="sy0">,</span><span class="st_h">'dbx_close'</span><span class="sy0">,</span><span class="st_h">'dbx_compare'</span><span class="sy0">,</span><span class="st_h">'dbx_connect'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dbx_error'</span><span class="sy0">,</span><span class="st_h">'dbx_escape_string'</span><span class="sy0">,</span><span class="st_h">'dbx_fetch_row'</span><span class="sy0">,</span><span class="st_h">'dbx_query'</span><span class="sy0">,</span></span></span> <span class="st_h">'dbx_sort'</span><span class="sy0">,</span><span class="st_h">'dcgettext'</span><span class="sy0">,</span><span class="st_h">'dcngettext'</span><span class="sy0">,</span><span class="st_h">'deaggregate'</span><span class="sy0">,</span><span class="st_h">'debug_backtrace'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'debug_zval_dump'</span><span class="sy0">,</span><span class="st_h">'debugbreak'</span><span class="sy0">,</span><span class="st_h">'decbin'</span><span class="sy0">,</span><span class="st_h">'dechex'</span><span class="sy0">,</span><span class="st_h">'decoct'</span><span class="sy0">,</span><span class="st_h">'define'</span><span class="sy0">,</span></span></span> <span class="st_h">'defined'</span><span class="sy0">,</span><span class="st_h">'define_syslog_variables'</span><span class="sy0">,</span><span class="st_h">'deg2rad'</span><span class="sy0">,</span><span class="st_h">'dgettext'</span><span class="sy0">,</span><span class="st_h">'die'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'dio_close'</span><span class="sy0">,</span><span class="st_h">'dio_open'</span><span class="sy0">,</span><span class="st_h">'dio_read'</span><span class="sy0">,</span><span class="st_h">'dio_seek'</span><span class="sy0">,</span><span class="st_h">'dio_stat'</span><span class="sy0">,</span><span class="st_h">'dio_write'</span><span class="sy0">,</span></span></span> <span class="st_h">'dir'</span><span class="sy0">,</span><span class="st_h">'dirname'</span><span class="sy0">,</span><span class="st_h">'disk_free_space'</span><span class="sy0">,</span><span class="st_h">'disk_total_space'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'diskfreespace'</span><span class="sy0">,</span><span class="st_h">'dl'</span><span class="sy0">,</span><span class="st_h">'dngettext'</span><span class="sy0">,</span><span class="st_h">'docblock_token_name'</span><span class="sy0">,</span></span></span> <span class="st_h">'docblock_tokenize'</span><span class="sy0">,</span><span class="st_h">'dom_import_simplexml'</span><span class="sy0">,</span><span class="st_h">'domxml_add_root'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_attributes'</span><span class="sy0">,</span><span class="st_h">'domxml_children'</span><span class="sy0">,</span><span class="st_h">'domxml_doc_add_root'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_doc_document_element'</span><span class="sy0">,</span><span class="st_h">'domxml_doc_get_element_by_id'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_doc_get_elements_by_tagname'</span><span class="sy0">,</span><span class="st_h">'domxml_doc_get_root'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_doc_set_root'</span><span class="sy0">,</span><span class="st_h">'domxml_doc_validate'</span><span class="sy0">,</span><span class="st_h">'domxml_doc_xinclude'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_dump_mem'</span><span class="sy0">,</span><span class="st_h">'domxml_dump_mem_file'</span><span class="sy0">,</span><span class="st_h">'domxml_dump_node'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_dumpmem'</span><span class="sy0">,</span><span class="st_h">'domxml_elem_get_attribute'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_elem_set_attribute'</span><span class="sy0">,</span><span class="st_h">'domxml_get_attribute'</span><span class="sy0">,</span><span class="st_h">'domxml_getattr'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_html_dump_mem'</span><span class="sy0">,</span><span class="st_h">'domxml_new_child'</span><span class="sy0">,</span><span class="st_h">'domxml_new_doc'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_new_xmldoc'</span><span class="sy0">,</span><span class="st_h">'domxml_node'</span><span class="sy0">,</span><span class="st_h">'domxml_node_add_namespace'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_node_attributes'</span><span class="sy0">,</span><span class="st_h">'domxml_node_children'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_node_get_content'</span><span class="sy0">,</span><span class="st_h">'domxml_node_has_attributes'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_node_new_child'</span><span class="sy0">,</span><span class="st_h">'domxml_node_set_content'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_node_set_namespace'</span><span class="sy0">,</span><span class="st_h">'domxml_node_unlink_node'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_open_file'</span><span class="sy0">,</span><span class="st_h">'domxml_open_mem'</span><span class="sy0">,</span><span class="st_h">'domxml_parser'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_parser_add_chunk'</span><span class="sy0">,</span><span class="st_h">'domxml_parser_cdata_section'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_parser_characters'</span><span class="sy0">,</span><span class="st_h">'domxml_parser_comment'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_parser_end'</span><span class="sy0">,</span><span class="st_h">'domxml_parser_end_document'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_parser_end_element'</span><span class="sy0">,</span><span class="st_h">'domxml_parser_entity_reference'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_parser_get_document'</span><span class="sy0">,</span><span class="st_h">'domxml_parser_namespace_decl'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_parser_processing_instruction'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_parser_start_document'</span><span class="sy0">,</span><span class="st_h">'domxml_parser_start_element'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_root'</span><span class="sy0">,</span><span class="st_h">'domxml_set_attribute'</span><span class="sy0">,</span><span class="st_h">'domxml_setattr'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'domxml_substitute_entities_default'</span><span class="sy0">,</span><span class="st_h">'domxml_unlink_node'</span><span class="sy0">,</span></span></span> <span class="st_h">'domxml_version'</span><span class="sy0">,</span><span class="st_h">'domxml_xmltree'</span><span class="sy0">,</span><span class="st_h">'doubleval'</span><span class="sy0">,</span><span class="st_h">'each'</span><span class="sy0">,</span><span class="st_h">'easter_date'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'easter_days'</span><span class="sy0">,</span><span class="st_h">'empty'</span><span class="sy0">,</span><span class="st_h">'end'</span><span class="sy0">,</span><span class="st_h">'ereg'</span><span class="sy0">,</span><span class="st_h">'ereg_replace'</span><span class="sy0">,</span><span class="st_h">'eregi'</span><span class="sy0">,</span></span></span> <span class="st_h">'eregi_replace'</span><span class="sy0">,</span><span class="st_h">'error_get_last'</span><span class="sy0">,</span><span class="st_h">'error_log'</span><span class="sy0">,</span><span class="st_h">'error_reporting'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'escapeshellarg'</span><span class="sy0">,</span><span class="st_h">'escapeshellcmd'</span><span class="sy0">,</span><span class="st_h">'eval'</span><span class="sy0">,</span><span class="st_h">'event_deschedule'</span><span class="sy0">,</span></span></span> <span class="st_h">'event_dispatch'</span><span class="sy0">,</span><span class="st_h">'event_free'</span><span class="sy0">,</span><span class="st_h">'event_handle_signal'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'event_have_events'</span><span class="sy0">,</span><span class="st_h">'event_init'</span><span class="sy0">,</span><span class="st_h">'event_new'</span><span class="sy0">,</span><span class="st_h">'event_pending'</span><span class="sy0">,</span></span></span> <span class="st_h">'event_priority_set'</span><span class="sy0">,</span><span class="st_h">'event_schedule'</span><span class="sy0">,</span><span class="st_h">'event_set'</span><span class="sy0">,</span><span class="st_h">'event_timeout'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'exec'</span><span class="sy0">,</span><span class="st_h">'exif_imagetype'</span><span class="sy0">,</span><span class="st_h">'exif_read_data'</span><span class="sy0">,</span><span class="st_h">'exif_tagname'</span><span class="sy0">,</span></span></span> <span class="st_h">'exif_thumbnail'</span><span class="sy0">,</span><span class="st_h">'exit'</span><span class="sy0">,</span><span class="st_h">'exp'</span><span class="sy0">,</span><span class="st_h">'explode'</span><span class="sy0">,</span><span class="st_h">'expm1'</span><span class="sy0">,</span><span class="st_h">'extension_loaded'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'extract'</span><span class="sy0">,</span><span class="st_h">'ezmlm_hash'</span><span class="sy0">,</span><span class="st_h">'fbird_add_user'</span><span class="sy0">,</span><span class="st_h">'fbird_affected_rows'</span><span class="sy0">,</span></span></span> <span class="st_h">'fbird_backup'</span><span class="sy0">,</span><span class="st_h">'fbird_blob_add'</span><span class="sy0">,</span><span class="st_h">'fbird_blob_cancel'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fbird_blob_close'</span><span class="sy0">,</span><span class="st_h">'fbird_blob_create'</span><span class="sy0">,</span><span class="st_h">'fbird_blob_echo'</span><span class="sy0">,</span></span></span> <span class="st_h">'fbird_blob_get'</span><span class="sy0">,</span><span class="st_h">'fbird_blob_import'</span><span class="sy0">,</span><span class="st_h">'fbird_blob_info'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fbird_blob_open'</span><span class="sy0">,</span><span class="st_h">'fbird_close'</span><span class="sy0">,</span><span class="st_h">'fbird_commit'</span><span class="sy0">,</span><span class="st_h">'fbird_commit_ret'</span><span class="sy0">,</span></span></span> <span class="st_h">'fbird_connect'</span><span class="sy0">,</span><span class="st_h">'fbird_db_info'</span><span class="sy0">,</span><span class="st_h">'fbird_delete_user'</span><span class="sy0">,</span><span class="st_h">'fbird_drop_db'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fbird_errcode'</span><span class="sy0">,</span><span class="st_h">'fbird_errmsg'</span><span class="sy0">,</span><span class="st_h">'fbird_execute'</span><span class="sy0">,</span><span class="st_h">'fbird_fetch_assoc'</span><span class="sy0">,</span></span></span> <span class="st_h">'fbird_fetch_object'</span><span class="sy0">,</span><span class="st_h">'fbird_fetch_row'</span><span class="sy0">,</span><span class="st_h">'fbird_field_info'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fbird_free_event_handler'</span><span class="sy0">,</span><span class="st_h">'fbird_free_query'</span><span class="sy0">,</span><span class="st_h">'fbird_free_result'</span><span class="sy0">,</span></span></span> <span class="st_h">'fbird_gen_id'</span><span class="sy0">,</span><span class="st_h">'fbird_maintain_db'</span><span class="sy0">,</span><span class="st_h">'fbird_modify_user'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fbird_name_result'</span><span class="sy0">,</span><span class="st_h">'fbird_num_fields'</span><span class="sy0">,</span><span class="st_h">'fbird_num_params'</span><span class="sy0">,</span></span></span> <span class="st_h">'fbird_param_info'</span><span class="sy0">,</span><span class="st_h">'fbird_pconnect'</span><span class="sy0">,</span><span class="st_h">'fbird_prepare'</span><span class="sy0">,</span><span class="st_h">'fbird_query'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fbird_restore'</span><span class="sy0">,</span><span class="st_h">'fbird_rollback'</span><span class="sy0">,</span><span class="st_h">'fbird_rollback_ret'</span><span class="sy0">,</span></span></span> <span class="st_h">'fbird_server_info'</span><span class="sy0">,</span><span class="st_h">'fbird_service_attach'</span><span class="sy0">,</span><span class="st_h">'fbird_service_detach'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fbird_set_event_handler'</span><span class="sy0">,</span><span class="st_h">'fbird_trans'</span><span class="sy0">,</span><span class="st_h">'fbird_wait_event'</span><span class="sy0">,</span><span class="st_h">'fclose'</span><span class="sy0">,</span></span></span> <span class="st_h">'fdf_add_doc_javascript'</span><span class="sy0">,</span><span class="st_h">'fdf_add_template'</span><span class="sy0">,</span><span class="st_h">'fdf_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fdf_create'</span><span class="sy0">,</span><span class="st_h">'fdf_enum_values'</span><span class="sy0">,</span><span class="st_h">'fdf_errno'</span><span class="sy0">,</span><span class="st_h">'fdf_error'</span><span class="sy0">,</span><span class="st_h">'fdf_get_ap'</span><span class="sy0">,</span></span></span> <span class="st_h">'fdf_get_attachment'</span><span class="sy0">,</span><span class="st_h">'fdf_get_encoding'</span><span class="sy0">,</span><span class="st_h">'fdf_get_file'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fdf_get_flags'</span><span class="sy0">,</span><span class="st_h">'fdf_get_opt'</span><span class="sy0">,</span><span class="st_h">'fdf_get_status'</span><span class="sy0">,</span><span class="st_h">'fdf_get_value'</span><span class="sy0">,</span></span></span> <span class="st_h">'fdf_get_version'</span><span class="sy0">,</span><span class="st_h">'fdf_header'</span><span class="sy0">,</span><span class="st_h">'fdf_next_field_name'</span><span class="sy0">,</span><span class="st_h">'fdf_open'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fdf_open_string'</span><span class="sy0">,</span><span class="st_h">'fdf_remove_item'</span><span class="sy0">,</span><span class="st_h">'fdf_save'</span><span class="sy0">,</span><span class="st_h">'fdf_save_string'</span><span class="sy0">,</span></span></span> <span class="st_h">'fdf_set_ap'</span><span class="sy0">,</span><span class="st_h">'fdf_set_encoding'</span><span class="sy0">,</span><span class="st_h">'fdf_set_file'</span><span class="sy0">,</span><span class="st_h">'fdf_set_flags'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fdf_set_javascript_action'</span><span class="sy0">,</span><span class="st_h">'fdf_set_on_import_javascript'</span><span class="sy0">,</span></span></span> <span class="st_h">'fdf_set_opt'</span><span class="sy0">,</span><span class="st_h">'fdf_set_status'</span><span class="sy0">,</span><span class="st_h">'fdf_set_submit_form_action'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fdf_set_target_frame'</span><span class="sy0">,</span><span class="st_h">'fdf_set_value'</span><span class="sy0">,</span><span class="st_h">'fdf_set_version'</span><span class="sy0">,</span><span class="st_h">'feof'</span><span class="sy0">,</span></span></span> <span class="st_h">'fflush'</span><span class="sy0">,</span><span class="st_h">'fgetc'</span><span class="sy0">,</span><span class="st_h">'fgetcsv'</span><span class="sy0">,</span><span class="st_h">'fgets'</span><span class="sy0">,</span><span class="st_h">'fgetss'</span><span class="sy0">,</span><span class="st_h">'file'</span><span class="sy0">,</span><span class="st_h">'file_exists'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'file_get_contents'</span><span class="sy0">,</span><span class="st_h">'file_put_contents'</span><span class="sy0">,</span><span class="st_h">'fileatime'</span><span class="sy0">,</span><span class="st_h">'filectime'</span><span class="sy0">,</span></span></span> <span class="st_h">'filegroup'</span><span class="sy0">,</span><span class="st_h">'fileinode'</span><span class="sy0">,</span><span class="st_h">'filemtime'</span><span class="sy0">,</span><span class="st_h">'fileowner'</span><span class="sy0">,</span><span class="st_h">'fileperms'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'filepro'</span><span class="sy0">,</span><span class="st_h">'filepro_fieldcount'</span><span class="sy0">,</span><span class="st_h">'filepro_fieldname'</span><span class="sy0">,</span></span></span> <span class="st_h">'filepro_fieldtype'</span><span class="sy0">,</span><span class="st_h">'filepro_fieldwidth'</span><span class="sy0">,</span><span class="st_h">'filepro_retrieve'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'filepro_rowcount'</span><span class="sy0">,</span><span class="st_h">'filesize'</span><span class="sy0">,</span><span class="st_h">'filetype'</span><span class="sy0">,</span><span class="st_h">'filter_has_var'</span><span class="sy0">,</span></span></span> <span class="st_h">'filter_id'</span><span class="sy0">,</span><span class="st_h">'filter_input'</span><span class="sy0">,</span><span class="st_h">'filter_input_array'</span><span class="sy0">,</span><span class="st_h">'filter_list'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'filter_var'</span><span class="sy0">,</span><span class="st_h">'filter_var_array'</span><span class="sy0">,</span><span class="st_h">'finfo_buffer'</span><span class="sy0">,</span><span class="st_h">'finfo_close'</span><span class="sy0">,</span></span></span> <span class="st_h">'finfo_file'</span><span class="sy0">,</span><span class="st_h">'finfo_open'</span><span class="sy0">,</span><span class="st_h">'finfo_set_flags'</span><span class="sy0">,</span><span class="st_h">'floatval'</span><span class="sy0">,</span><span class="st_h">'flock'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'floor'</span><span class="sy0">,</span><span class="st_h">'flush'</span><span class="sy0">,</span><span class="st_h">'fmod'</span><span class="sy0">,</span><span class="st_h">'fnmatch'</span><span class="sy0">,</span><span class="st_h">'fopen'</span><span class="sy0">,</span><span class="st_h">'fpassthru'</span><span class="sy0">,</span><span class="st_h">'fprintf'</span><span class="sy0">,</span></span></span> <span class="st_h">'fputcsv'</span><span class="sy0">,</span><span class="st_h">'fputs'</span><span class="sy0">,</span><span class="st_h">'fread'</span><span class="sy0">,</span><span class="st_h">'frenchtojd'</span><span class="sy0">,</span><span class="st_h">'fribidi_charset_info'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'fribidi_get_charsets'</span><span class="sy0">,</span><span class="st_h">'fribidi_log2vis'</span><span class="sy0">,</span><span class="st_h">'fscanf'</span><span class="sy0">,</span><span class="st_h">'fseek'</span><span class="sy0">,</span></span></span> <span class="st_h">'fsockopen'</span><span class="sy0">,</span><span class="st_h">'fstat'</span><span class="sy0">,</span><span class="st_h">'ftell'</span><span class="sy0">,</span><span class="st_h">'ftok'</span><span class="sy0">,</span><span class="st_h">'ftp_alloc'</span><span class="sy0">,</span><span class="st_h">'ftp_cdup'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ftp_chdir'</span><span class="sy0">,</span><span class="st_h">'ftp_chmod'</span><span class="sy0">,</span><span class="st_h">'ftp_close'</span><span class="sy0">,</span><span class="st_h">'ftp_connect'</span><span class="sy0">,</span><span class="st_h">'ftp_delete'</span><span class="sy0">,</span></span></span> <span class="st_h">'ftp_exec'</span><span class="sy0">,</span><span class="st_h">'ftp_fget'</span><span class="sy0">,</span><span class="st_h">'ftp_fput'</span><span class="sy0">,</span><span class="st_h">'ftp_get'</span><span class="sy0">,</span><span class="st_h">'ftp_get_option'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ftp_login'</span><span class="sy0">,</span><span class="st_h">'ftp_mdtm'</span><span class="sy0">,</span><span class="st_h">'ftp_mkdir'</span><span class="sy0">,</span><span class="st_h">'ftp_nb_continue'</span><span class="sy0">,</span><span class="st_h">'ftp_nb_fget'</span><span class="sy0">,</span></span></span> <span class="st_h">'ftp_nb_fput'</span><span class="sy0">,</span><span class="st_h">'ftp_nb_get'</span><span class="sy0">,</span><span class="st_h">'ftp_nb_put'</span><span class="sy0">,</span><span class="st_h">'ftp_nlist'</span><span class="sy0">,</span><span class="st_h">'ftp_pasv'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ftp_put'</span><span class="sy0">,</span><span class="st_h">'ftp_pwd'</span><span class="sy0">,</span><span class="st_h">'ftp_quit'</span><span class="sy0">,</span><span class="st_h">'ftp_raw'</span><span class="sy0">,</span><span class="st_h">'ftp_rawlist'</span><span class="sy0">,</span><span class="st_h">'ftp_rename'</span><span class="sy0">,</span></span></span> <span class="st_h">'ftp_rmdir'</span><span class="sy0">,</span><span class="st_h">'ftp_set_option'</span><span class="sy0">,</span><span class="st_h">'ftp_site'</span><span class="sy0">,</span><span class="st_h">'ftp_size'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ftp_ssl_connect'</span><span class="sy0">,</span><span class="st_h">'ftp_systype'</span><span class="sy0">,</span><span class="st_h">'ftruncate'</span><span class="sy0">,</span><span class="st_h">'function_exists'</span><span class="sy0">,</span></span></span> <span class="st_h">'func_get_arg'</span><span class="sy0">,</span><span class="st_h">'func_get_args'</span><span class="sy0">,</span><span class="st_h">'func_num_args'</span><span class="sy0">,</span><span class="st_h">'fwrite'</span><span class="sy0">,</span><span class="st_h">'gd_info'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'getallheaders'</span><span class="sy0">,</span><span class="st_h">'getcwd'</span><span class="sy0">,</span><span class="st_h">'getdate'</span><span class="sy0">,</span><span class="st_h">'getenv'</span><span class="sy0">,</span><span class="st_h">'gethostbyaddr'</span><span class="sy0">,</span></span></span> <span class="st_h">'gethostbyname'</span><span class="sy0">,</span><span class="st_h">'gethostbynamel'</span><span class="sy0">,</span><span class="st_h">'getimagesize'</span><span class="sy0">,</span><span class="st_h">'getlastmod'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'getmxrr'</span><span class="sy0">,</span><span class="st_h">'getmygid'</span><span class="sy0">,</span><span class="st_h">'getmyinode'</span><span class="sy0">,</span><span class="st_h">'getmypid'</span><span class="sy0">,</span><span class="st_h">'getmyuid'</span><span class="sy0">,</span><span class="st_h">'getopt'</span><span class="sy0">,</span></span></span> <span class="st_h">'getprotobyname'</span><span class="sy0">,</span><span class="st_h">'getprotobynumber'</span><span class="sy0">,</span><span class="st_h">'getrandmax'</span><span class="sy0">,</span><span class="st_h">'getrusage'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'getservbyname'</span><span class="sy0">,</span><span class="st_h">'getservbyport'</span><span class="sy0">,</span><span class="st_h">'gettext'</span><span class="sy0">,</span><span class="st_h">'gettimeofday'</span><span class="sy0">,</span><span class="st_h">'gettype'</span><span class="sy0">,</span></span></span> <span class="st_h">'get_browser'</span><span class="sy0">,</span><span class="st_h">'get_cfg_var'</span><span class="sy0">,</span><span class="st_h">'get_class'</span><span class="sy0">,</span><span class="st_h">'get_class_methods'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'get_class_vars'</span><span class="sy0">,</span><span class="st_h">'get_current_user'</span><span class="sy0">,</span><span class="st_h">'get_declared_classes'</span><span class="sy0">,</span></span></span> <span class="st_h">'get_defined_constants'</span><span class="sy0">,</span><span class="st_h">'get_defined_functions'</span><span class="sy0">,</span><span class="st_h">'get_defined_vars'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'get_extension_funcs'</span><span class="sy0">,</span><span class="st_h">'get_headers'</span><span class="sy0">,</span><span class="st_h">'get_html_translation_table'</span><span class="sy0">,</span></span></span> <span class="st_h">'get_included_files'</span><span class="sy0">,</span><span class="st_h">'get_include_path'</span><span class="sy0">,</span><span class="st_h">'get_loaded_extensions'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'get_magic_quotes_gpc'</span><span class="sy0">,</span><span class="st_h">'get_magic_quotes_runtime'</span><span class="sy0">,</span><span class="st_h">'get_meta_tags'</span><span class="sy0">,</span></span></span> <span class="st_h">'get_object_vars'</span><span class="sy0">,</span><span class="st_h">'get_parent_class'</span><span class="sy0">,</span><span class="st_h">'get_required_files'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'get_resource_type'</span><span class="sy0">,</span><span class="st_h">'glob'</span><span class="sy0">,</span><span class="st_h">'gmdate'</span><span class="sy0">,</span><span class="st_h">'gmmktime'</span><span class="sy0">,</span><span class="st_h">'gmp_abs'</span><span class="sy0">,</span><span class="st_h">'gmp_add'</span><span class="sy0">,</span></span></span> <span class="st_h">'gmp_and'</span><span class="sy0">,</span><span class="st_h">'gmp_clrbit'</span><span class="sy0">,</span><span class="st_h">'gmp_cmp'</span><span class="sy0">,</span><span class="st_h">'gmp_com'</span><span class="sy0">,</span><span class="st_h">'gmp_div'</span><span class="sy0">,</span><span class="st_h">'gmp_div_q'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'gmp_div_qr'</span><span class="sy0">,</span><span class="st_h">'gmp_div_r'</span><span class="sy0">,</span><span class="st_h">'gmp_divexact'</span><span class="sy0">,</span><span class="st_h">'gmp_fact'</span><span class="sy0">,</span><span class="st_h">'gmp_gcd'</span><span class="sy0">,</span></span></span> <span class="st_h">'gmp_gcdext'</span><span class="sy0">,</span><span class="st_h">'gmp_hamdist'</span><span class="sy0">,</span><span class="st_h">'gmp_init'</span><span class="sy0">,</span><span class="st_h">'gmp_intval'</span><span class="sy0">,</span><span class="st_h">'gmp_invert'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'gmp_jacobi'</span><span class="sy0">,</span><span class="st_h">'gmp_legendre'</span><span class="sy0">,</span><span class="st_h">'gmp_mod'</span><span class="sy0">,</span><span class="st_h">'gmp_mul'</span><span class="sy0">,</span><span class="st_h">'gmp_neg'</span><span class="sy0">,</span></span></span> <span class="st_h">'gmp_nextprime'</span><span class="sy0">,</span><span class="st_h">'gmp_or'</span><span class="sy0">,</span><span class="st_h">'gmp_perfect_square'</span><span class="sy0">,</span><span class="st_h">'gmp_popcount'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'gmp_pow'</span><span class="sy0">,</span><span class="st_h">'gmp_powm'</span><span class="sy0">,</span><span class="st_h">'gmp_prob_prime'</span><span class="sy0">,</span><span class="st_h">'gmp_random'</span><span class="sy0">,</span><span class="st_h">'gmp_scan0'</span><span class="sy0">,</span></span></span> <span class="st_h">'gmp_scan1'</span><span class="sy0">,</span><span class="st_h">'gmp_setbit'</span><span class="sy0">,</span><span class="st_h">'gmp_sign'</span><span class="sy0">,</span><span class="st_h">'gmp_sqrt'</span><span class="sy0">,</span><span class="st_h">'gmp_sqrtrem'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'gmp_strval'</span><span class="sy0">,</span><span class="st_h">'gmp_sub'</span><span class="sy0">,</span><span class="st_h">'gmp_xor'</span><span class="sy0">,</span><span class="st_h">'gmstrftime'</span><span class="sy0">,</span><span class="st_h">'gopher_parsedir'</span><span class="sy0">,</span></span></span> <span class="st_h">'gregoriantojd'</span><span class="sy0">,</span><span class="st_h">'gzclose'</span><span class="sy0">,</span><span class="st_h">'gzcompress'</span><span class="sy0">,</span><span class="st_h">'gzdeflate'</span><span class="sy0">,</span><span class="st_h">'gzencode'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'gzeof'</span><span class="sy0">,</span><span class="st_h">'gzfile'</span><span class="sy0">,</span><span class="st_h">'gzgetc'</span><span class="sy0">,</span><span class="st_h">'gzgets'</span><span class="sy0">,</span><span class="st_h">'gzgetss'</span><span class="sy0">,</span><span class="st_h">'gzinflate'</span><span class="sy0">,</span><span class="st_h">'gzopen'</span><span class="sy0">,</span></span></span> <span class="st_h">'gzpassthru'</span><span class="sy0">,</span><span class="st_h">'gzputs'</span><span class="sy0">,</span><span class="st_h">'gzread'</span><span class="sy0">,</span><span class="st_h">'gzrewind'</span><span class="sy0">,</span><span class="st_h">'gzseek'</span><span class="sy0">,</span><span class="st_h">'gztell'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'gzuncompress'</span><span class="sy0">,</span><span class="st_h">'gzwrite'</span><span class="sy0">,</span><span class="st_h">'hash'</span><span class="sy0">,</span><span class="st_h">'hash_algos'</span><span class="sy0">,</span><span class="st_h">'hash_file'</span><span class="sy0">,</span></span></span> <span class="st_h">'hash_final'</span><span class="sy0">,</span><span class="st_h">'hash_hmac'</span><span class="sy0">,</span><span class="st_h">'hash_hmac_file'</span><span class="sy0">,</span><span class="st_h">'hash_init'</span><span class="sy0">,</span><span class="st_h">'hash_update'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'hash_update_file'</span><span class="sy0">,</span><span class="st_h">'hash_update_stream'</span><span class="sy0">,</span><span class="st_h">'header'</span><span class="sy0">,</span><span class="st_h">'headers_list'</span><span class="sy0">,</span></span></span> <span class="st_h">'headers_sent'</span><span class="sy0">,</span><span class="st_h">'hebrev'</span><span class="sy0">,</span><span class="st_h">'hebrevc'</span><span class="sy0">,</span><span class="st_h">'hexdec'</span><span class="sy0">,</span><span class="st_h">'highlight_file'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'highlight_string'</span><span class="sy0">,</span><span class="st_h">'html_doc'</span><span class="sy0">,</span><span class="st_h">'html_doc_file'</span><span class="sy0">,</span><span class="st_h">'html_entity_decode'</span><span class="sy0">,</span></span></span> <span class="st_h">'htmlentities'</span><span class="sy0">,</span><span class="st_h">'htmlspecialchars'</span><span class="sy0">,</span><span class="st_h">'htmlspecialchars_decode'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_build_cookie'</span><span class="sy0">,</span><span class="st_h">'http_build_query'</span><span class="sy0">,</span><span class="st_h">'http_build_str'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_build_url'</span><span class="sy0">,</span><span class="st_h">'http_cache_etag'</span><span class="sy0">,</span><span class="st_h">'http_cache_last_modified'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_chunked_decode'</span><span class="sy0">,</span><span class="st_h">'http_date'</span><span class="sy0">,</span><span class="st_h">'http_deflate'</span><span class="sy0">,</span><span class="st_h">'http_get'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_get_request_body'</span><span class="sy0">,</span><span class="st_h">'http_get_request_body_stream'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_get_request_headers'</span><span class="sy0">,</span><span class="st_h">'http_head'</span><span class="sy0">,</span><span class="st_h">'http_inflate'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_match_etag'</span><span class="sy0">,</span><span class="st_h">'http_match_modified'</span><span class="sy0">,</span><span class="st_h">'http_match_request_header'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_negotiate_charset'</span><span class="sy0">,</span><span class="st_h">'http_negotiate_content_type'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_negotiate_language'</span><span class="sy0">,</span><span class="st_h">'http_parse_cookie'</span><span class="sy0">,</span><span class="st_h">'http_parse_headers'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_parse_message'</span><span class="sy0">,</span><span class="st_h">'http_parse_params'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_persistent_handles_clean'</span><span class="sy0">,</span><span class="st_h">'http_persistent_handles_count'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_persistent_handles_ident'</span><span class="sy0">,</span><span class="st_h">'http_post_data'</span><span class="sy0">,</span><span class="st_h">'http_post_fields'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_put_data'</span><span class="sy0">,</span><span class="st_h">'http_put_file'</span><span class="sy0">,</span><span class="st_h">'http_put_stream'</span><span class="sy0">,</span><span class="st_h">'http_redirect'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_request'</span><span class="sy0">,</span><span class="st_h">'http_request_body_encode'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_request_method_exists'</span><span class="sy0">,</span><span class="st_h">'http_request_method_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_request_method_register'</span><span class="sy0">,</span><span class="st_h">'http_request_method_unregister'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_send_content_disposition'</span><span class="sy0">,</span><span class="st_h">'http_send_content_type'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_send_data'</span><span class="sy0">,</span><span class="st_h">'http_send_file'</span><span class="sy0">,</span><span class="st_h">'http_send_last_modified'</span><span class="sy0">,</span></span></span> <span class="st_h">'http_send_status'</span><span class="sy0">,</span><span class="st_h">'http_send_stream'</span><span class="sy0">,</span><span class="st_h">'http_support'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'http_throttle'</span><span class="sy0">,</span><span class="st_h">'hypot'</span><span class="sy0">,</span><span class="st_h">'i18n_convert'</span><span class="sy0">,</span><span class="st_h">'i18n_discover_encoding'</span><span class="sy0">,</span></span></span> <span class="st_h">'i18n_http_input'</span><span class="sy0">,</span><span class="st_h">'i18n_http_output'</span><span class="sy0">,</span><span class="st_h">'i18n_internal_encoding'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'i18n_ja_jp_hantozen'</span><span class="sy0">,</span><span class="st_h">'i18n_mime_header_decode'</span><span class="sy0">,</span></span></span> <span class="st_h">'i18n_mime_header_encode'</span><span class="sy0">,</span><span class="st_h">'ibase_add_user'</span><span class="sy0">,</span><span class="st_h">'ibase_affected_rows'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ibase_backup'</span><span class="sy0">,</span><span class="st_h">'ibase_blob_add'</span><span class="sy0">,</span><span class="st_h">'ibase_blob_cancel'</span><span class="sy0">,</span></span></span> <span class="st_h">'ibase_blob_close'</span><span class="sy0">,</span><span class="st_h">'ibase_blob_create'</span><span class="sy0">,</span><span class="st_h">'ibase_blob_echo'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ibase_blob_get'</span><span class="sy0">,</span><span class="st_h">'ibase_blob_import'</span><span class="sy0">,</span><span class="st_h">'ibase_blob_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'ibase_blob_open'</span><span class="sy0">,</span><span class="st_h">'ibase_close'</span><span class="sy0">,</span><span class="st_h">'ibase_commit'</span><span class="sy0">,</span><span class="st_h">'ibase_commit_ret'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ibase_connect'</span><span class="sy0">,</span><span class="st_h">'ibase_db_info'</span><span class="sy0">,</span><span class="st_h">'ibase_delete_user'</span><span class="sy0">,</span><span class="st_h">'ibase_drop_db'</span><span class="sy0">,</span></span></span> <span class="st_h">'ibase_errcode'</span><span class="sy0">,</span><span class="st_h">'ibase_errmsg'</span><span class="sy0">,</span><span class="st_h">'ibase_execute'</span><span class="sy0">,</span><span class="st_h">'ibase_fetch_assoc'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ibase_fetch_object'</span><span class="sy0">,</span><span class="st_h">'ibase_fetch_row'</span><span class="sy0">,</span><span class="st_h">'ibase_field_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'ibase_free_event_handler'</span><span class="sy0">,</span><span class="st_h">'ibase_free_query'</span><span class="sy0">,</span><span class="st_h">'ibase_free_result'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ibase_gen_id'</span><span class="sy0">,</span><span class="st_h">'ibase_maintain_db'</span><span class="sy0">,</span><span class="st_h">'ibase_modify_user'</span><span class="sy0">,</span></span></span> <span class="st_h">'ibase_name_result'</span><span class="sy0">,</span><span class="st_h">'ibase_num_fields'</span><span class="sy0">,</span><span class="st_h">'ibase_num_params'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ibase_param_info'</span><span class="sy0">,</span><span class="st_h">'ibase_pconnect'</span><span class="sy0">,</span><span class="st_h">'ibase_prepare'</span><span class="sy0">,</span><span class="st_h">'ibase_query'</span><span class="sy0">,</span></span></span> <span class="st_h">'ibase_restore'</span><span class="sy0">,</span><span class="st_h">'ibase_rollback'</span><span class="sy0">,</span><span class="st_h">'ibase_rollback_ret'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ibase_server_info'</span><span class="sy0">,</span><span class="st_h">'ibase_service_attach'</span><span class="sy0">,</span><span class="st_h">'ibase_service_detach'</span><span class="sy0">,</span></span></span> <span class="st_h">'ibase_set_event_handler'</span><span class="sy0">,</span><span class="st_h">'ibase_trans'</span><span class="sy0">,</span><span class="st_h">'ibase_wait_event'</span><span class="sy0">,</span><span class="st_h">'iconv'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'iconv_get_encoding'</span><span class="sy0">,</span><span class="st_h">'iconv_mime_decode'</span><span class="sy0">,</span></span></span> <span class="st_h">'iconv_mime_decode_headers'</span><span class="sy0">,</span><span class="st_h">'iconv_mime_encode'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'iconv_set_encoding'</span><span class="sy0">,</span><span class="st_h">'iconv_strlen'</span><span class="sy0">,</span><span class="st_h">'iconv_strpos'</span><span class="sy0">,</span><span class="st_h">'iconv_strrpos'</span><span class="sy0">,</span></span></span> <span class="st_h">'iconv_substr'</span><span class="sy0">,</span><span class="st_h">'id3_get_frame_long_name'</span><span class="sy0">,</span><span class="st_h">'id3_get_frame_short_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'id3_get_genre_id'</span><span class="sy0">,</span><span class="st_h">'id3_get_genre_list'</span><span class="sy0">,</span><span class="st_h">'id3_get_genre_name'</span><span class="sy0">,</span></span></span> <span class="st_h">'id3_get_tag'</span><span class="sy0">,</span><span class="st_h">'id3_get_version'</span><span class="sy0">,</span><span class="st_h">'id3_remove_tag'</span><span class="sy0">,</span><span class="st_h">'id3_set_tag'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'idate'</span><span class="sy0">,</span><span class="st_h">'ignore_user_abort'</span><span class="sy0">,</span><span class="st_h">'image_type_to_extension'</span><span class="sy0">,</span></span></span> <span class="st_h">'image_type_to_mime_type'</span><span class="sy0">,</span><span class="st_h">'image2wbmp'</span><span class="sy0">,</span><span class="st_h">'imagealphablending'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imageantialias'</span><span class="sy0">,</span><span class="st_h">'imagearc'</span><span class="sy0">,</span><span class="st_h">'imagechar'</span><span class="sy0">,</span><span class="st_h">'imagecharup'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagecolorallocate'</span><span class="sy0">,</span><span class="st_h">'imagecolorallocatealpha'</span><span class="sy0">,</span><span class="st_h">'imagecolorat'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagecolorclosest'</span><span class="sy0">,</span><span class="st_h">'imagecolorclosestalpha'</span><span class="sy0">,</span><span class="st_h">'imagecolordeallocate'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagecolorexact'</span><span class="sy0">,</span><span class="st_h">'imagecolorexactalpha'</span><span class="sy0">,</span><span class="st_h">'imagecolormatch'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagecolorresolve'</span><span class="sy0">,</span><span class="st_h">'imagecolorresolvealpha'</span><span class="sy0">,</span><span class="st_h">'imagecolorset'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagecolorsforindex'</span><span class="sy0">,</span><span class="st_h">'imagecolorstotal'</span><span class="sy0">,</span><span class="st_h">'imagecolortransparent'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imageconvolution'</span><span class="sy0">,</span><span class="st_h">'imagecopy'</span><span class="sy0">,</span><span class="st_h">'imagecopymerge'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagecopymergegray'</span><span class="sy0">,</span><span class="st_h">'imagecopyresampled'</span><span class="sy0">,</span><span class="st_h">'imagecopyresized'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagecreate'</span><span class="sy0">,</span><span class="st_h">'imagecreatefromgd'</span><span class="sy0">,</span><span class="st_h">'imagecreatefromgd2'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagecreatefromgd2part'</span><span class="sy0">,</span><span class="st_h">'imagecreatefromgif'</span><span class="sy0">,</span><span class="st_h">'imagecreatefromjpeg'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagecreatefrompng'</span><span class="sy0">,</span><span class="st_h">'imagecreatefromstring'</span><span class="sy0">,</span><span class="st_h">'imagecreatefromwbmp'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagecreatefromxbm'</span><span class="sy0">,</span><span class="st_h">'imagecreatetruecolor'</span><span class="sy0">,</span><span class="st_h">'imagedashedline'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagedestroy'</span><span class="sy0">,</span><span class="st_h">'imageellipse'</span><span class="sy0">,</span><span class="st_h">'imagefill'</span><span class="sy0">,</span><span class="st_h">'imagefilledarc'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagefilledellipse'</span><span class="sy0">,</span><span class="st_h">'imagefilledpolygon'</span><span class="sy0">,</span><span class="st_h">'imagefilledrectangle'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagefilltoborder'</span><span class="sy0">,</span><span class="st_h">'imagefilter'</span><span class="sy0">,</span><span class="st_h">'imagefontheight'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagefontwidth'</span><span class="sy0">,</span><span class="st_h">'imageftbbox'</span><span class="sy0">,</span><span class="st_h">'imagefttext'</span><span class="sy0">,</span><span class="st_h">'imagegammacorrect'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagegd'</span><span class="sy0">,</span><span class="st_h">'imagegd2'</span><span class="sy0">,</span><span class="st_h">'imagegif'</span><span class="sy0">,</span><span class="st_h">'imagegrabscreen'</span><span class="sy0">,</span><span class="st_h">'imagegrabwindow'</span><span class="sy0">,</span></span></span> <span class="st_h">'imageinterlace'</span><span class="sy0">,</span><span class="st_h">'imageistruecolor'</span><span class="sy0">,</span><span class="st_h">'imagejpeg'</span><span class="sy0">,</span><span class="st_h">'imagelayereffect'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imageline'</span><span class="sy0">,</span><span class="st_h">'imageloadfont'</span><span class="sy0">,</span><span class="st_h">'imagepalettecopy'</span><span class="sy0">,</span><span class="st_h">'imagepng'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagepolygon'</span><span class="sy0">,</span><span class="st_h">'imagepsbbox'</span><span class="sy0">,</span><span class="st_h">'imagepsencodefont'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagepsextendfont'</span><span class="sy0">,</span><span class="st_h">'imagepsfreefont'</span><span class="sy0">,</span><span class="st_h">'imagepsloadfont'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagepsslantfont'</span><span class="sy0">,</span><span class="st_h">'imagepstext'</span><span class="sy0">,</span><span class="st_h">'imagerectangle'</span><span class="sy0">,</span><span class="st_h">'imagerotate'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagesavealpha'</span><span class="sy0">,</span><span class="st_h">'imagesetbrush'</span><span class="sy0">,</span><span class="st_h">'imagesetpixel'</span><span class="sy0">,</span><span class="st_h">'imagesetstyle'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagesetthickness'</span><span class="sy0">,</span><span class="st_h">'imagesettile'</span><span class="sy0">,</span><span class="st_h">'imagestring'</span><span class="sy0">,</span><span class="st_h">'imagestringup'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imagesx'</span><span class="sy0">,</span><span class="st_h">'imagesy'</span><span class="sy0">,</span><span class="st_h">'imagetruecolortopalette'</span><span class="sy0">,</span><span class="st_h">'imagettfbbox'</span><span class="sy0">,</span></span></span> <span class="st_h">'imagettftext'</span><span class="sy0">,</span><span class="st_h">'imagetypes'</span><span class="sy0">,</span><span class="st_h">'imagewbmp'</span><span class="sy0">,</span><span class="st_h">'imagexbm'</span><span class="sy0">,</span><span class="st_h">'imap_8bit'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_alerts'</span><span class="sy0">,</span><span class="st_h">'imap_append'</span><span class="sy0">,</span><span class="st_h">'imap_base64'</span><span class="sy0">,</span><span class="st_h">'imap_binary'</span><span class="sy0">,</span><span class="st_h">'imap_body'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_bodystruct'</span><span class="sy0">,</span><span class="st_h">'imap_check'</span><span class="sy0">,</span><span class="st_h">'imap_clearflag_full'</span><span class="sy0">,</span><span class="st_h">'imap_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_create'</span><span class="sy0">,</span><span class="st_h">'imap_createmailbox'</span><span class="sy0">,</span><span class="st_h">'imap_delete'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_deletemailbox'</span><span class="sy0">,</span><span class="st_h">'imap_errors'</span><span class="sy0">,</span><span class="st_h">'imap_expunge'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_fetch_overview'</span><span class="sy0">,</span><span class="st_h">'imap_fetchbody'</span><span class="sy0">,</span><span class="st_h">'imap_fetchheader'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_fetchstructure'</span><span class="sy0">,</span><span class="st_h">'imap_fetchtext'</span><span class="sy0">,</span><span class="st_h">'imap_get_quota'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_get_quotaroot'</span><span class="sy0">,</span><span class="st_h">'imap_getacl'</span><span class="sy0">,</span><span class="st_h">'imap_getmailboxes'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_getsubscribed'</span><span class="sy0">,</span><span class="st_h">'imap_header'</span><span class="sy0">,</span><span class="st_h">'imap_headerinfo'</span><span class="sy0">,</span><span class="st_h">'imap_headers'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_last_error'</span><span class="sy0">,</span><span class="st_h">'imap_list'</span><span class="sy0">,</span><span class="st_h">'imap_listmailbox'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_listsubscribed'</span><span class="sy0">,</span><span class="st_h">'imap_lsub'</span><span class="sy0">,</span><span class="st_h">'imap_mail'</span><span class="sy0">,</span><span class="st_h">'imap_mail_compose'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_mail_copy'</span><span class="sy0">,</span><span class="st_h">'imap_mail_move'</span><span class="sy0">,</span><span class="st_h">'imap_mailboxmsginfo'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_mime_header_decode'</span><span class="sy0">,</span><span class="st_h">'imap_msgno'</span><span class="sy0">,</span><span class="st_h">'imap_num_msg'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_num_recent'</span><span class="sy0">,</span><span class="st_h">'imap_open'</span><span class="sy0">,</span><span class="st_h">'imap_ping'</span><span class="sy0">,</span><span class="st_h">'imap_qprint'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_rename'</span><span class="sy0">,</span><span class="st_h">'imap_renamemailbox'</span><span class="sy0">,</span><span class="st_h">'imap_reopen'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_rfc822_parse_adrlist'</span><span class="sy0">,</span><span class="st_h">'imap_rfc822_parse_headers'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_rfc822_write_address'</span><span class="sy0">,</span><span class="st_h">'imap_savebody'</span><span class="sy0">,</span><span class="st_h">'imap_scan'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_scanmailbox'</span><span class="sy0">,</span><span class="st_h">'imap_search'</span><span class="sy0">,</span><span class="st_h">'imap_set_quota'</span><span class="sy0">,</span><span class="st_h">'imap_setacl'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_setflag_full'</span><span class="sy0">,</span><span class="st_h">'imap_sort'</span><span class="sy0">,</span><span class="st_h">'imap_status'</span><span class="sy0">,</span><span class="st_h">'imap_subscribe'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_thread'</span><span class="sy0">,</span><span class="st_h">'imap_timeout'</span><span class="sy0">,</span><span class="st_h">'imap_uid'</span><span class="sy0">,</span><span class="st_h">'imap_undelete'</span><span class="sy0">,</span></span></span> <span class="st_h">'imap_unsubscribe'</span><span class="sy0">,</span><span class="st_h">'imap_utf7_decode'</span><span class="sy0">,</span><span class="st_h">'imap_utf7_encode'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'imap_utf8'</span><span class="sy0">,</span><span class="st_h">'implode'</span><span class="sy0">,</span><span class="st_h">'import_request_variables'</span><span class="sy0">,</span><span class="st_h">'in_array'</span><span class="sy0">,</span></span></span> <span class="st_h">'ini_alter'</span><span class="sy0">,</span><span class="st_h">'ini_get'</span><span class="sy0">,</span><span class="st_h">'ini_get_all'</span><span class="sy0">,</span><span class="st_h">'ini_restore'</span><span class="sy0">,</span><span class="st_h">'ini_set'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'intval'</span><span class="sy0">,</span><span class="st_h">'ip2long'</span><span class="sy0">,</span><span class="st_h">'iptcembed'</span><span class="sy0">,</span><span class="st_h">'iptcparse'</span><span class="sy0">,</span><span class="st_h">'isset'</span><span class="sy0">,</span><span class="st_h">'is_a'</span><span class="sy0">,</span></span></span> <span class="st_h">'is_array'</span><span class="sy0">,</span><span class="st_h">'is_bool'</span><span class="sy0">,</span><span class="st_h">'is_callable'</span><span class="sy0">,</span><span class="st_h">'is_dir'</span><span class="sy0">,</span><span class="st_h">'is_double'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'is_executable'</span><span class="sy0">,</span><span class="st_h">'is_file'</span><span class="sy0">,</span><span class="st_h">'is_finite'</span><span class="sy0">,</span><span class="st_h">'is_float'</span><span class="sy0">,</span><span class="st_h">'is_infinite'</span><span class="sy0">,</span></span></span> <span class="st_h">'is_int'</span><span class="sy0">,</span><span class="st_h">'is_integer'</span><span class="sy0">,</span><span class="st_h">'is_link'</span><span class="sy0">,</span><span class="st_h">'is_long'</span><span class="sy0">,</span><span class="st_h">'is_nan'</span><span class="sy0">,</span><span class="st_h">'is_null'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'is_numeric'</span><span class="sy0">,</span><span class="st_h">'is_object'</span><span class="sy0">,</span><span class="st_h">'is_readable'</span><span class="sy0">,</span><span class="st_h">'is_real'</span><span class="sy0">,</span><span class="st_h">'is_resource'</span><span class="sy0">,</span></span></span> <span class="st_h">'is_scalar'</span><span class="sy0">,</span><span class="st_h">'is_soap_fault'</span><span class="sy0">,</span><span class="st_h">'is_string'</span><span class="sy0">,</span><span class="st_h">'is_subclass_of'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'is_uploaded_file'</span><span class="sy0">,</span><span class="st_h">'is_writable'</span><span class="sy0">,</span><span class="st_h">'is_writeable'</span><span class="sy0">,</span><span class="st_h">'iterator_apply'</span><span class="sy0">,</span></span></span> <span class="st_h">'iterator_count'</span><span class="sy0">,</span><span class="st_h">'iterator_to_array'</span><span class="sy0">,</span><span class="st_h">'java_last_exception_clear'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'java_last_exception_get'</span><span class="sy0">,</span><span class="st_h">'jddayofweek'</span><span class="sy0">,</span><span class="st_h">'jdmonthname'</span><span class="sy0">,</span><span class="st_h">'jdtofrench'</span><span class="sy0">,</span></span></span> <span class="st_h">'jdtogregorian'</span><span class="sy0">,</span><span class="st_h">'jdtojewish'</span><span class="sy0">,</span><span class="st_h">'jdtojulian'</span><span class="sy0">,</span><span class="st_h">'jdtounix'</span><span class="sy0">,</span><span class="st_h">'jewishtojd'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'join'</span><span class="sy0">,</span><span class="st_h">'jpeg2wbmp'</span><span class="sy0">,</span><span class="st_h">'json_decode'</span><span class="sy0">,</span><span class="st_h">'json_encode'</span><span class="sy0">,</span><span class="st_h">'juliantojd'</span><span class="sy0">,</span><span class="st_h">'key'</span><span class="sy0">,</span></span></span> <span class="st_h">'key_exists'</span><span class="sy0">,</span><span class="st_h">'krsort'</span><span class="sy0">,</span><span class="st_h">'ksort'</span><span class="sy0">,</span><span class="st_h">'lcg_value'</span><span class="sy0">,</span><span class="st_h">'ldap_add'</span><span class="sy0">,</span><span class="st_h">'ldap_bind'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ldap_close'</span><span class="sy0">,</span><span class="st_h">'ldap_compare'</span><span class="sy0">,</span><span class="st_h">'ldap_connect'</span><span class="sy0">,</span><span class="st_h">'ldap_count_entries'</span><span class="sy0">,</span></span></span> <span class="st_h">'ldap_delete'</span><span class="sy0">,</span><span class="st_h">'ldap_dn2ufn'</span><span class="sy0">,</span><span class="st_h">'ldap_err2str'</span><span class="sy0">,</span><span class="st_h">'ldap_errno'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ldap_error'</span><span class="sy0">,</span><span class="st_h">'ldap_explode_dn'</span><span class="sy0">,</span><span class="st_h">'ldap_first_attribute'</span><span class="sy0">,</span></span></span> <span class="st_h">'ldap_first_entry'</span><span class="sy0">,</span><span class="st_h">'ldap_first_reference'</span><span class="sy0">,</span><span class="st_h">'ldap_free_result'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ldap_get_attributes'</span><span class="sy0">,</span><span class="st_h">'ldap_get_dn'</span><span class="sy0">,</span><span class="st_h">'ldap_get_entries'</span><span class="sy0">,</span></span></span> <span class="st_h">'ldap_get_option'</span><span class="sy0">,</span><span class="st_h">'ldap_get_values'</span><span class="sy0">,</span><span class="st_h">'ldap_get_values_len'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ldap_list'</span><span class="sy0">,</span><span class="st_h">'ldap_mod_add'</span><span class="sy0">,</span><span class="st_h">'ldap_mod_del'</span><span class="sy0">,</span><span class="st_h">'ldap_mod_replace'</span><span class="sy0">,</span></span></span> <span class="st_h">'ldap_modify'</span><span class="sy0">,</span><span class="st_h">'ldap_next_attribute'</span><span class="sy0">,</span><span class="st_h">'ldap_next_entry'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ldap_next_reference'</span><span class="sy0">,</span><span class="st_h">'ldap_parse_reference'</span><span class="sy0">,</span><span class="st_h">'ldap_parse_result'</span><span class="sy0">,</span></span></span> <span class="st_h">'ldap_read'</span><span class="sy0">,</span><span class="st_h">'ldap_rename'</span><span class="sy0">,</span><span class="st_h">'ldap_search'</span><span class="sy0">,</span><span class="st_h">'ldap_set_option'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ldap_sort'</span><span class="sy0">,</span><span class="st_h">'ldap_start_tls'</span><span class="sy0">,</span><span class="st_h">'ldap_unbind'</span><span class="sy0">,</span><span class="st_h">'levenshtein'</span><span class="sy0">,</span></span></span> <span class="st_h">'libxml_clear_errors'</span><span class="sy0">,</span><span class="st_h">'libxml_get_errors'</span><span class="sy0">,</span><span class="st_h">'libxml_get_last_error'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'libxml_set_streams_context'</span><span class="sy0">,</span><span class="st_h">'libxml_use_internal_errors'</span><span class="sy0">,</span><span class="st_h">'link'</span><span class="sy0">,</span></span></span> <span class="st_h">'linkinfo'</span><span class="sy0">,</span><span class="st_h">'list'</span><span class="sy0">,</span><span class="st_h">'localeconv'</span><span class="sy0">,</span><span class="st_h">'localtime'</span><span class="sy0">,</span><span class="st_h">'log'</span><span class="sy0">,</span><span class="st_h">'log1p'</span><span class="sy0">,</span><span class="st_h">'log10'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'long2ip'</span><span class="sy0">,</span><span class="st_h">'lstat'</span><span class="sy0">,</span><span class="st_h">'ltrim'</span><span class="sy0">,</span><span class="st_h">'lzf_compress'</span><span class="sy0">,</span><span class="st_h">'lzf_decompress'</span><span class="sy0">,</span></span></span> <span class="st_h">'lzf_optimized_for'</span><span class="sy0">,</span><span class="st_h">'magic_quotes_runtime'</span><span class="sy0">,</span><span class="st_h">'mail'</span><span class="sy0">,</span><span class="st_h">'max'</span><span class="sy0">,</span><span class="st_h">'mbereg'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mberegi'</span><span class="sy0">,</span><span class="st_h">'mberegi_replace'</span><span class="sy0">,</span><span class="st_h">'mbereg_match'</span><span class="sy0">,</span><span class="st_h">'mbereg_replace'</span><span class="sy0">,</span></span></span> <span class="st_h">'mbereg_search'</span><span class="sy0">,</span><span class="st_h">'mbereg_search_getpos'</span><span class="sy0">,</span><span class="st_h">'mbereg_search_getregs'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mbereg_search_init'</span><span class="sy0">,</span><span class="st_h">'mbereg_search_pos'</span><span class="sy0">,</span><span class="st_h">'mbereg_search_regs'</span><span class="sy0">,</span></span></span> <span class="st_h">'mbereg_search_setpos'</span><span class="sy0">,</span><span class="st_h">'mbregex_encoding'</span><span class="sy0">,</span><span class="st_h">'mbsplit'</span><span class="sy0">,</span><span class="st_h">'mbstrcut'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mbstrlen'</span><span class="sy0">,</span><span class="st_h">'mbstrpos'</span><span class="sy0">,</span><span class="st_h">'mbstrrpos'</span><span class="sy0">,</span><span class="st_h">'mbsubstr'</span><span class="sy0">,</span><span class="st_h">'mb_check_encoding'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_convert_case'</span><span class="sy0">,</span><span class="st_h">'mb_convert_encoding'</span><span class="sy0">,</span><span class="st_h">'mb_convert_kana'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_convert_variables'</span><span class="sy0">,</span><span class="st_h">'mb_decode_mimeheader'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_decode_numericentity'</span><span class="sy0">,</span><span class="st_h">'mb_detect_encoding'</span><span class="sy0">,</span><span class="st_h">'mb_detect_order'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_encode_mimeheader'</span><span class="sy0">,</span><span class="st_h">'mb_encode_numericentity'</span><span class="sy0">,</span><span class="st_h">'mb_ereg'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_eregi'</span><span class="sy0">,</span><span class="st_h">'mb_eregi_replace'</span><span class="sy0">,</span><span class="st_h">'mb_ereg_match'</span><span class="sy0">,</span><span class="st_h">'mb_ereg_replace'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_ereg_search'</span><span class="sy0">,</span><span class="st_h">'mb_ereg_search_getpos'</span><span class="sy0">,</span><span class="st_h">'mb_ereg_search_getregs'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_ereg_search_init'</span><span class="sy0">,</span><span class="st_h">'mb_ereg_search_pos'</span><span class="sy0">,</span><span class="st_h">'mb_ereg_search_regs'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_ereg_search_setpos'</span><span class="sy0">,</span><span class="st_h">'mb_get_info'</span><span class="sy0">,</span><span class="st_h">'mb_http_input'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_http_output'</span><span class="sy0">,</span><span class="st_h">'mb_internal_encoding'</span><span class="sy0">,</span><span class="st_h">'mb_language'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_list_encodings'</span><span class="sy0">,</span><span class="st_h">'mb_output_handler'</span><span class="sy0">,</span><span class="st_h">'mb_parse_str'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_preferred_mime_name'</span><span class="sy0">,</span><span class="st_h">'mb_regex_encoding'</span><span class="sy0">,</span><span class="st_h">'mb_regex_set_options'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_send_mail'</span><span class="sy0">,</span><span class="st_h">'mb_split'</span><span class="sy0">,</span><span class="st_h">'mb_strcut'</span><span class="sy0">,</span><span class="st_h">'mb_strimwidth'</span><span class="sy0">,</span><span class="st_h">'mb_stripos'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_stristr'</span><span class="sy0">,</span><span class="st_h">'mb_strlen'</span><span class="sy0">,</span><span class="st_h">'mb_strpos'</span><span class="sy0">,</span><span class="st_h">'mb_strrchr'</span><span class="sy0">,</span><span class="st_h">'mb_strrichr'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_strripos'</span><span class="sy0">,</span><span class="st_h">'mb_strrpos'</span><span class="sy0">,</span><span class="st_h">'mb_strstr'</span><span class="sy0">,</span><span class="st_h">'mb_strtolower'</span><span class="sy0">,</span></span></span> <span class="st_h">'mb_strtoupper'</span><span class="sy0">,</span><span class="st_h">'mb_strwidth'</span><span class="sy0">,</span><span class="st_h">'mb_substitute_character'</span><span class="sy0">,</span><span class="st_h">'mb_substr'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mb_substr_count'</span><span class="sy0">,</span><span class="st_h">'mcrypt_cbc'</span><span class="sy0">,</span><span class="st_h">'mcrypt_cfb'</span><span class="sy0">,</span><span class="st_h">'mcrypt_create_iv'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_decrypt'</span><span class="sy0">,</span><span class="st_h">'mcrypt_ecb'</span><span class="sy0">,</span><span class="st_h">'mcrypt_enc_get_algorithms_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_enc_get_block_size'</span><span class="sy0">,</span><span class="st_h">'mcrypt_enc_get_iv_size'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_enc_get_key_size'</span><span class="sy0">,</span><span class="st_h">'mcrypt_enc_get_modes_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_enc_get_supported_key_sizes'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_enc_is_block_algorithm'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_enc_is_block_algorithm_mode'</span><span class="sy0">,</span><span class="st_h">'mcrypt_enc_is_block_mode'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_enc_self_test'</span><span class="sy0">,</span><span class="st_h">'mcrypt_encrypt'</span><span class="sy0">,</span><span class="st_h">'mcrypt_generic'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_generic_deinit'</span><span class="sy0">,</span><span class="st_h">'mcrypt_generic_end'</span><span class="sy0">,</span><span class="st_h">'mcrypt_generic_init'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_get_block_size'</span><span class="sy0">,</span><span class="st_h">'mcrypt_get_cipher_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_get_iv_size'</span><span class="sy0">,</span><span class="st_h">'mcrypt_get_key_size'</span><span class="sy0">,</span><span class="st_h">'mcrypt_list_algorithms'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_list_modes'</span><span class="sy0">,</span><span class="st_h">'mcrypt_module_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_module_get_algo_block_size'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_module_get_algo_key_size'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_module_get_supported_key_sizes'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_module_is_block_algorithm'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_module_is_block_algorithm_mode'</span><span class="sy0">,</span></span></span> <span class="st_h">'mcrypt_module_is_block_mode'</span><span class="sy0">,</span><span class="st_h">'mcrypt_module_open'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mcrypt_module_self_test'</span><span class="sy0">,</span><span class="st_h">'mcrypt_ofb'</span><span class="sy0">,</span><span class="st_h">'md5'</span><span class="sy0">,</span><span class="st_h">'md5_file'</span><span class="sy0">,</span></span></span> <span class="st_h">'mdecrypt_generic'</span><span class="sy0">,</span><span class="st_h">'memcache_add'</span><span class="sy0">,</span><span class="st_h">'memcache_add_server'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'memcache_close'</span><span class="sy0">,</span><span class="st_h">'memcache_connect'</span><span class="sy0">,</span><span class="st_h">'memcache_debug'</span><span class="sy0">,</span></span></span> <span class="st_h">'memcache_decrement'</span><span class="sy0">,</span><span class="st_h">'memcache_delete'</span><span class="sy0">,</span><span class="st_h">'memcache_flush'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'memcache_get'</span><span class="sy0">,</span><span class="st_h">'memcache_get_extended_stats'</span><span class="sy0">,</span></span></span> <span class="st_h">'memcache_get_server_status'</span><span class="sy0">,</span><span class="st_h">'memcache_get_stats'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'memcache_get_version'</span><span class="sy0">,</span><span class="st_h">'memcache_increment'</span><span class="sy0">,</span><span class="st_h">'memcache_pconnect'</span><span class="sy0">,</span></span></span> <span class="st_h">'memcache_replace'</span><span class="sy0">,</span><span class="st_h">'memcache_set'</span><span class="sy0">,</span><span class="st_h">'memcache_set_compress_threshold'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'memcache_set_server_params'</span><span class="sy0">,</span><span class="st_h">'memory_get_peak_usage'</span><span class="sy0">,</span></span></span> <span class="st_h">'memory_get_usage'</span><span class="sy0">,</span><span class="st_h">'metaphone'</span><span class="sy0">,</span><span class="st_h">'mhash'</span><span class="sy0">,</span><span class="st_h">'mhash_count'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mhash_get_block_size'</span><span class="sy0">,</span><span class="st_h">'mhash_get_hash_name'</span><span class="sy0">,</span><span class="st_h">'mhash_keygen_s2k'</span><span class="sy0">,</span></span></span> <span class="st_h">'method_exists'</span><span class="sy0">,</span><span class="st_h">'microtime'</span><span class="sy0">,</span><span class="st_h">'mime_content_type'</span><span class="sy0">,</span><span class="st_h">'min'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ming_keypress'</span><span class="sy0">,</span><span class="st_h">'ming_setcubicthreshold'</span><span class="sy0">,</span><span class="st_h">'ming_setscale'</span><span class="sy0">,</span></span></span> <span class="st_h">'ming_useconstants'</span><span class="sy0">,</span><span class="st_h">'ming_useswfversion'</span><span class="sy0">,</span><span class="st_h">'mkdir'</span><span class="sy0">,</span><span class="st_h">'mktime'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'money_format'</span><span class="sy0">,</span><span class="st_h">'move_uploaded_file'</span><span class="sy0">,</span><span class="st_h">'msql'</span><span class="sy0">,</span><span class="st_h">'msql_affected_rows'</span><span class="sy0">,</span></span></span> <span class="st_h">'msql_close'</span><span class="sy0">,</span><span class="st_h">'msql_connect'</span><span class="sy0">,</span><span class="st_h">'msql_create_db'</span><span class="sy0">,</span><span class="st_h">'msql_createdb'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'msql_data_seek'</span><span class="sy0">,</span><span class="st_h">'msql_db_query'</span><span class="sy0">,</span><span class="st_h">'msql_dbname'</span><span class="sy0">,</span><span class="st_h">'msql_drop_db'</span><span class="sy0">,</span></span></span> <span class="st_h">'msql_dropdb'</span><span class="sy0">,</span><span class="st_h">'msql_error'</span><span class="sy0">,</span><span class="st_h">'msql_fetch_array'</span><span class="sy0">,</span><span class="st_h">'msql_fetch_field'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'msql_fetch_object'</span><span class="sy0">,</span><span class="st_h">'msql_fetch_row'</span><span class="sy0">,</span><span class="st_h">'msql_field_flags'</span><span class="sy0">,</span></span></span> <span class="st_h">'msql_field_len'</span><span class="sy0">,</span><span class="st_h">'msql_field_name'</span><span class="sy0">,</span><span class="st_h">'msql_field_seek'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'msql_field_table'</span><span class="sy0">,</span><span class="st_h">'msql_field_type'</span><span class="sy0">,</span><span class="st_h">'msql_fieldflags'</span><span class="sy0">,</span></span></span> <span class="st_h">'msql_fieldlen'</span><span class="sy0">,</span><span class="st_h">'msql_fieldname'</span><span class="sy0">,</span><span class="st_h">'msql_fieldtable'</span><span class="sy0">,</span><span class="st_h">'msql_fieldtype'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'msql_free_result'</span><span class="sy0">,</span><span class="st_h">'msql_freeresult'</span><span class="sy0">,</span><span class="st_h">'msql_list_dbs'</span><span class="sy0">,</span></span></span> <span class="st_h">'msql_list_fields'</span><span class="sy0">,</span><span class="st_h">'msql_list_tables'</span><span class="sy0">,</span><span class="st_h">'msql_listdbs'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'msql_listfields'</span><span class="sy0">,</span><span class="st_h">'msql_listtables'</span><span class="sy0">,</span><span class="st_h">'msql_num_fields'</span><span class="sy0">,</span></span></span> <span class="st_h">'msql_num_rows'</span><span class="sy0">,</span><span class="st_h">'msql_numfields'</span><span class="sy0">,</span><span class="st_h">'msql_numrows'</span><span class="sy0">,</span><span class="st_h">'msql_pconnect'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'msql_query'</span><span class="sy0">,</span><span class="st_h">'msql_regcase'</span><span class="sy0">,</span><span class="st_h">'msql_result'</span><span class="sy0">,</span><span class="st_h">'msql_select_db'</span><span class="sy0">,</span></span></span> <span class="st_h">'msql_selectdb'</span><span class="sy0">,</span><span class="st_h">'msql_tablename'</span><span class="sy0">,</span><span class="st_h">'mssql_bind'</span><span class="sy0">,</span><span class="st_h">'mssql_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mssql_connect'</span><span class="sy0">,</span><span class="st_h">'mssql_data_seek'</span><span class="sy0">,</span><span class="st_h">'mssql_execute'</span><span class="sy0">,</span></span></span> <span class="st_h">'mssql_fetch_array'</span><span class="sy0">,</span><span class="st_h">'mssql_fetch_assoc'</span><span class="sy0">,</span><span class="st_h">'mssql_fetch_batch'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mssql_fetch_field'</span><span class="sy0">,</span><span class="st_h">'mssql_fetch_object'</span><span class="sy0">,</span><span class="st_h">'mssql_fetch_row'</span><span class="sy0">,</span></span></span> <span class="st_h">'mssql_field_length'</span><span class="sy0">,</span><span class="st_h">'mssql_field_name'</span><span class="sy0">,</span><span class="st_h">'mssql_field_seek'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mssql_field_type'</span><span class="sy0">,</span><span class="st_h">'mssql_free_result'</span><span class="sy0">,</span><span class="st_h">'mssql_free_statement'</span><span class="sy0">,</span></span></span> <span class="st_h">'mssql_get_last_message'</span><span class="sy0">,</span><span class="st_h">'mssql_guid_string'</span><span class="sy0">,</span><span class="st_h">'mssql_init'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mssql_min_error_severity'</span><span class="sy0">,</span><span class="st_h">'mssql_min_message_severity'</span><span class="sy0">,</span></span></span> <span class="st_h">'mssql_next_result'</span><span class="sy0">,</span><span class="st_h">'mssql_num_fields'</span><span class="sy0">,</span><span class="st_h">'mssql_num_rows'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mssql_pconnect'</span><span class="sy0">,</span><span class="st_h">'mssql_query'</span><span class="sy0">,</span><span class="st_h">'mssql_result'</span><span class="sy0">,</span><span class="st_h">'mssql_rows_affected'</span><span class="sy0">,</span></span></span> <span class="st_h">'mssql_select_db'</span><span class="sy0">,</span><span class="st_h">'mt_getrandmax'</span><span class="sy0">,</span><span class="st_h">'mt_rand'</span><span class="sy0">,</span><span class="st_h">'mt_srand'</span><span class="sy0">,</span><span class="st_h">'mysql'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_affected_rows'</span><span class="sy0">,</span><span class="st_h">'mysql_client_encoding'</span><span class="sy0">,</span><span class="st_h">'mysql_close'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_connect'</span><span class="sy0">,</span><span class="st_h">'mysql_createdb'</span><span class="sy0">,</span><span class="st_h">'mysql_create_db'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_data_seek'</span><span class="sy0">,</span><span class="st_h">'mysql_dbname'</span><span class="sy0">,</span><span class="st_h">'mysql_db_name'</span><span class="sy0">,</span><span class="st_h">'mysql_db_query'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_dropdb'</span><span class="sy0">,</span><span class="st_h">'mysql_drop_db'</span><span class="sy0">,</span><span class="st_h">'mysql_errno'</span><span class="sy0">,</span><span class="st_h">'mysql_error'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_escape_string'</span><span class="sy0">,</span><span class="st_h">'mysql_fetch_array'</span><span class="sy0">,</span><span class="st_h">'mysql_fetch_assoc'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_fetch_field'</span><span class="sy0">,</span><span class="st_h">'mysql_fetch_lengths'</span><span class="sy0">,</span><span class="st_h">'mysql_fetch_object'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_fetch_row'</span><span class="sy0">,</span><span class="st_h">'mysql_fieldflags'</span><span class="sy0">,</span><span class="st_h">'mysql_fieldlen'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_fieldname'</span><span class="sy0">,</span><span class="st_h">'mysql_fieldtable'</span><span class="sy0">,</span><span class="st_h">'mysql_fieldtype'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_field_flags'</span><span class="sy0">,</span><span class="st_h">'mysql_field_len'</span><span class="sy0">,</span><span class="st_h">'mysql_field_name'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_field_seek'</span><span class="sy0">,</span><span class="st_h">'mysql_field_table'</span><span class="sy0">,</span><span class="st_h">'mysql_field_type'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_freeresult'</span><span class="sy0">,</span><span class="st_h">'mysql_free_result'</span><span class="sy0">,</span><span class="st_h">'mysql_get_client_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_get_host_info'</span><span class="sy0">,</span><span class="st_h">'mysql_get_proto_info'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_get_server_info'</span><span class="sy0">,</span><span class="st_h">'mysql_info'</span><span class="sy0">,</span><span class="st_h">'mysql_insert_id'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_listdbs'</span><span class="sy0">,</span><span class="st_h">'mysql_listfields'</span><span class="sy0">,</span><span class="st_h">'mysql_listtables'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_list_dbs'</span><span class="sy0">,</span><span class="st_h">'mysql_list_fields'</span><span class="sy0">,</span><span class="st_h">'mysql_list_processes'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_list_tables'</span><span class="sy0">,</span><span class="st_h">'mysql_numfields'</span><span class="sy0">,</span><span class="st_h">'mysql_numrows'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_num_fields'</span><span class="sy0">,</span><span class="st_h">'mysql_num_rows'</span><span class="sy0">,</span><span class="st_h">'mysql_pconnect'</span><span class="sy0">,</span><span class="st_h">'mysql_ping'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_query'</span><span class="sy0">,</span><span class="st_h">'mysql_real_escape_string'</span><span class="sy0">,</span><span class="st_h">'mysql_result'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_selectdb'</span><span class="sy0">,</span><span class="st_h">'mysql_select_db'</span><span class="sy0">,</span><span class="st_h">'mysql_set_charset'</span><span class="sy0">,</span><span class="st_h">'mysql_stat'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysql_tablename'</span><span class="sy0">,</span><span class="st_h">'mysql_table_name'</span><span class="sy0">,</span><span class="st_h">'mysql_thread_id'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysql_unbuffered_query'</span><span class="sy0">,</span><span class="st_h">'mysqli_affected_rows'</span><span class="sy0">,</span><span class="st_h">'mysqli_autocommit'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_bind_param'</span><span class="sy0">,</span><span class="st_h">'mysqli_bind_result'</span><span class="sy0">,</span><span class="st_h">'mysqli_change_user'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_character_set_name'</span><span class="sy0">,</span><span class="st_h">'mysqli_client_encoding'</span><span class="sy0">,</span><span class="st_h">'mysqli_close'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_commit'</span><span class="sy0">,</span><span class="st_h">'mysqli_connect'</span><span class="sy0">,</span><span class="st_h">'mysqli_connect_errno'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_connect_error'</span><span class="sy0">,</span><span class="st_h">'mysqli_data_seek'</span><span class="sy0">,</span><span class="st_h">'mysqli_debug'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_disable_reads_from_master'</span><span class="sy0">,</span><span class="st_h">'mysqli_disable_rpl_parse'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_dump_debug_info'</span><span class="sy0">,</span><span class="st_h">'mysqli_embedded_server_end'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_embedded_server_start'</span><span class="sy0">,</span><span class="st_h">'mysqli_enable_reads_from_master'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_enable_rpl_parse'</span><span class="sy0">,</span><span class="st_h">'mysqli_errno'</span><span class="sy0">,</span><span class="st_h">'mysqli_error'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_escape_string'</span><span class="sy0">,</span><span class="st_h">'mysqli_execute'</span><span class="sy0">,</span><span class="st_h">'mysqli_fetch'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_fetch_array'</span><span class="sy0">,</span><span class="st_h">'mysqli_fetch_assoc'</span><span class="sy0">,</span><span class="st_h">'mysqli_fetch_field'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_fetch_field_direct'</span><span class="sy0">,</span><span class="st_h">'mysqli_fetch_fields'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_fetch_lengths'</span><span class="sy0">,</span><span class="st_h">'mysqli_fetch_object'</span><span class="sy0">,</span><span class="st_h">'mysqli_fetch_row'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_field_count'</span><span class="sy0">,</span><span class="st_h">'mysqli_field_seek'</span><span class="sy0">,</span><span class="st_h">'mysqli_field_tell'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_free_result'</span><span class="sy0">,</span><span class="st_h">'mysqli_get_charset'</span><span class="sy0">,</span><span class="st_h">'mysqli_get_client_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_get_client_version'</span><span class="sy0">,</span><span class="st_h">'mysqli_get_host_info'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_get_metadata'</span><span class="sy0">,</span><span class="st_h">'mysqli_get_proto_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_get_server_info'</span><span class="sy0">,</span><span class="st_h">'mysqli_get_server_version'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_get_warnings'</span><span class="sy0">,</span><span class="st_h">'mysqli_info'</span><span class="sy0">,</span><span class="st_h">'mysqli_init'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_insert_id'</span><span class="sy0">,</span><span class="st_h">'mysqli_kill'</span><span class="sy0">,</span><span class="st_h">'mysqli_master_query'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_more_results'</span><span class="sy0">,</span><span class="st_h">'mysqli_multi_query'</span><span class="sy0">,</span><span class="st_h">'mysqli_next_result'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_num_fields'</span><span class="sy0">,</span><span class="st_h">'mysqli_num_rows'</span><span class="sy0">,</span><span class="st_h">'mysqli_options'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_param_count'</span><span class="sy0">,</span><span class="st_h">'mysqli_ping'</span><span class="sy0">,</span><span class="st_h">'mysqli_prepare'</span><span class="sy0">,</span><span class="st_h">'mysqli_query'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_real_connect'</span><span class="sy0">,</span><span class="st_h">'mysqli_real_escape_string'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_real_query'</span><span class="sy0">,</span><span class="st_h">'mysqli_report'</span><span class="sy0">,</span><span class="st_h">'mysqli_rollback'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_rpl_parse_enabled'</span><span class="sy0">,</span><span class="st_h">'mysqli_rpl_probe'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_rpl_query_type'</span><span class="sy0">,</span><span class="st_h">'mysqli_select_db'</span><span class="sy0">,</span><span class="st_h">'mysqli_send_long_data'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_send_query'</span><span class="sy0">,</span><span class="st_h">'mysqli_set_charset'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_set_local_infile_default'</span><span class="sy0">,</span><span class="st_h">'mysqli_set_local_infile_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_set_opt'</span><span class="sy0">,</span><span class="st_h">'mysqli_slave_query'</span><span class="sy0">,</span><span class="st_h">'mysqli_sqlstate'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_ssl_set'</span><span class="sy0">,</span><span class="st_h">'mysqli_stat'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_affected_rows'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_stmt_attr_get'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_attr_set'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_stmt_bind_param'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_bind_result'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_stmt_close'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_data_seek'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_errno'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_stmt_error'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_execute'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_fetch'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_stmt_field_count'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_free_result'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_stmt_get_warnings'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_init'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_stmt_insert_id'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_num_rows'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_stmt_param_count'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_prepare'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_reset'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_stmt_result_metadata'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_send_long_data'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_stmt_sqlstate'</span><span class="sy0">,</span><span class="st_h">'mysqli_stmt_store_result'</span><span class="sy0">,</span></span></span> <span class="st_h">'mysqli_store_result'</span><span class="sy0">,</span><span class="st_h">'mysqli_thread_id'</span><span class="sy0">,</span><span class="st_h">'mysqli_thread_safe'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'mysqli_use_result'</span><span class="sy0">,</span><span class="st_h">'mysqli_warning_count'</span><span class="sy0">,</span><span class="st_h">'natcasesort'</span><span class="sy0">,</span><span class="st_h">'natsort'</span><span class="sy0">,</span></span></span> <span class="st_h">'new_xmldoc'</span><span class="sy0">,</span><span class="st_h">'next'</span><span class="sy0">,</span><span class="st_h">'ngettext'</span><span class="sy0">,</span><span class="st_h">'nl2br'</span><span class="sy0">,</span><span class="st_h">'nl_langinfo'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ntuser_getdomaincontroller'</span><span class="sy0">,</span><span class="st_h">'ntuser_getusergroups'</span><span class="sy0">,</span></span></span> <span class="st_h">'ntuser_getuserinfo'</span><span class="sy0">,</span><span class="st_h">'ntuser_getuserlist'</span><span class="sy0">,</span><span class="st_h">'number_format'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ob_clean'</span><span class="sy0">,</span><span class="st_h">'ob_deflatehandler'</span><span class="sy0">,</span><span class="st_h">'ob_end_clean'</span><span class="sy0">,</span><span class="st_h">'ob_end_flush'</span><span class="sy0">,</span></span></span> <span class="st_h">'ob_etaghandler'</span><span class="sy0">,</span><span class="st_h">'ob_flush'</span><span class="sy0">,</span><span class="st_h">'ob_get_clean'</span><span class="sy0">,</span><span class="st_h">'ob_get_contents'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ob_get_flush'</span><span class="sy0">,</span><span class="st_h">'ob_get_length'</span><span class="sy0">,</span><span class="st_h">'ob_get_level'</span><span class="sy0">,</span><span class="st_h">'ob_get_status'</span><span class="sy0">,</span></span></span> <span class="st_h">'ob_gzhandler'</span><span class="sy0">,</span><span class="st_h">'ob_iconv_handler'</span><span class="sy0">,</span><span class="st_h">'ob_implicit_flush'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ob_inflatehandler'</span><span class="sy0">,</span><span class="st_h">'ob_list_handlers'</span><span class="sy0">,</span><span class="st_h">'ob_start'</span><span class="sy0">,</span><span class="st_h">'ob_tidyhandler'</span><span class="sy0">,</span></span></span> <span class="st_h">'octdec'</span><span class="sy0">,</span><span class="st_h">'odbc_autocommit'</span><span class="sy0">,</span><span class="st_h">'odbc_binmode'</span><span class="sy0">,</span><span class="st_h">'odbc_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'odbc_close_all'</span><span class="sy0">,</span><span class="st_h">'odbc_columnprivileges'</span><span class="sy0">,</span><span class="st_h">'odbc_columns'</span><span class="sy0">,</span></span></span> <span class="st_h">'odbc_commit'</span><span class="sy0">,</span><span class="st_h">'odbc_connect'</span><span class="sy0">,</span><span class="st_h">'odbc_cursor'</span><span class="sy0">,</span><span class="st_h">'odbc_data_source'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'odbc_do'</span><span class="sy0">,</span><span class="st_h">'odbc_error'</span><span class="sy0">,</span><span class="st_h">'odbc_errormsg'</span><span class="sy0">,</span><span class="st_h">'odbc_exec'</span><span class="sy0">,</span><span class="st_h">'odbc_execute'</span><span class="sy0">,</span></span></span> <span class="st_h">'odbc_fetch_array'</span><span class="sy0">,</span><span class="st_h">'odbc_fetch_into'</span><span class="sy0">,</span><span class="st_h">'odbc_fetch_object'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'odbc_fetch_row'</span><span class="sy0">,</span><span class="st_h">'odbc_field_len'</span><span class="sy0">,</span><span class="st_h">'odbc_field_name'</span><span class="sy0">,</span></span></span> <span class="st_h">'odbc_field_num'</span><span class="sy0">,</span><span class="st_h">'odbc_field_precision'</span><span class="sy0">,</span><span class="st_h">'odbc_field_scale'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'odbc_field_type'</span><span class="sy0">,</span><span class="st_h">'odbc_foreignkeys'</span><span class="sy0">,</span><span class="st_h">'odbc_free_result'</span><span class="sy0">,</span></span></span> <span class="st_h">'odbc_gettypeinfo'</span><span class="sy0">,</span><span class="st_h">'odbc_longreadlen'</span><span class="sy0">,</span><span class="st_h">'odbc_next_result'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'odbc_num_fields'</span><span class="sy0">,</span><span class="st_h">'odbc_num_rows'</span><span class="sy0">,</span><span class="st_h">'odbc_pconnect'</span><span class="sy0">,</span><span class="st_h">'odbc_prepare'</span><span class="sy0">,</span></span></span> <span class="st_h">'odbc_primarykeys'</span><span class="sy0">,</span><span class="st_h">'odbc_procedurecolumns'</span><span class="sy0">,</span><span class="st_h">'odbc_procedures'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'odbc_result'</span><span class="sy0">,</span><span class="st_h">'odbc_result_all'</span><span class="sy0">,</span><span class="st_h">'odbc_rollback'</span><span class="sy0">,</span><span class="st_h">'odbc_setoption'</span><span class="sy0">,</span></span></span> <span class="st_h">'odbc_specialcolumns'</span><span class="sy0">,</span><span class="st_h">'odbc_statistics'</span><span class="sy0">,</span><span class="st_h">'odbc_tableprivileges'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'odbc_tables'</span><span class="sy0">,</span><span class="st_h">'opendir'</span><span class="sy0">,</span><span class="st_h">'openlog'</span><span class="sy0">,</span><span class="st_h">'openssl_csr_export'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_csr_export_to_file'</span><span class="sy0">,</span><span class="st_h">'openssl_csr_get_public_key'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_csr_get_subject'</span><span class="sy0">,</span><span class="st_h">'openssl_csr_new'</span><span class="sy0">,</span><span class="st_h">'openssl_csr_sign'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_error_string'</span><span class="sy0">,</span><span class="st_h">'openssl_free_key'</span><span class="sy0">,</span><span class="st_h">'openssl_get_privatekey'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_get_publickey'</span><span class="sy0">,</span><span class="st_h">'openssl_open'</span><span class="sy0">,</span><span class="st_h">'openssl_pkcs12_export'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_pkcs12_export_to_file'</span><span class="sy0">,</span><span class="st_h">'openssl_pkcs12_read'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_pkcs7_decrypt'</span><span class="sy0">,</span><span class="st_h">'openssl_pkcs7_encrypt'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_pkcs7_sign'</span><span class="sy0">,</span><span class="st_h">'openssl_pkcs7_verify'</span><span class="sy0">,</span><span class="st_h">'openssl_pkey_export'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_pkey_export_to_file'</span><span class="sy0">,</span><span class="st_h">'openssl_pkey_free'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_pkey_get_details'</span><span class="sy0">,</span><span class="st_h">'openssl_pkey_get_private'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_pkey_get_public'</span><span class="sy0">,</span><span class="st_h">'openssl_pkey_new'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_private_decrypt'</span><span class="sy0">,</span><span class="st_h">'openssl_private_encrypt'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_public_decrypt'</span><span class="sy0">,</span><span class="st_h">'openssl_public_encrypt'</span><span class="sy0">,</span><span class="st_h">'openssl_seal'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_sign'</span><span class="sy0">,</span><span class="st_h">'openssl_verify'</span><span class="sy0">,</span><span class="st_h">'openssl_x509_checkpurpose'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_x509_check_private_key'</span><span class="sy0">,</span><span class="st_h">'openssl_x509_export'</span><span class="sy0">,</span></span></span> <span class="st_h">'openssl_x509_export_to_file'</span><span class="sy0">,</span><span class="st_h">'openssl_x509_free'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'openssl_x509_parse'</span><span class="sy0">,</span><span class="st_h">'openssl_x509_read'</span><span class="sy0">,</span><span class="st_h">'ord'</span><span class="sy0">,</span></span></span> <span class="st_h">'output_add_rewrite_var'</span><span class="sy0">,</span><span class="st_h">'output_reset_rewrite_vars'</span><span class="sy0">,</span><span class="st_h">'overload'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'outputdebugstring'</span><span class="sy0">,</span><span class="st_h">'pack'</span><span class="sy0">,</span><span class="st_h">'parse_ini_file'</span><span class="sy0">,</span><span class="st_h">'parse_str'</span><span class="sy0">,</span><span class="st_h">'parse_url'</span><span class="sy0">,</span></span></span> <span class="st_h">'parsekit_compile_file'</span><span class="sy0">,</span><span class="st_h">'parsekit_compile_string'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'parsekit_func_arginfo'</span><span class="sy0">,</span><span class="st_h">'parsekit_opcode_flags'</span><span class="sy0">,</span></span></span> <span class="st_h">'parsekit_opcode_name'</span><span class="sy0">,</span><span class="st_h">'passthru'</span><span class="sy0">,</span><span class="st_h">'pathinfo'</span><span class="sy0">,</span><span class="st_h">'pclose'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_add_bookmark'</span><span class="sy0">,</span><span class="st_h">'pdf_add_launchlink'</span><span class="sy0">,</span><span class="st_h">'pdf_add_locallink'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_add_nameddest'</span><span class="sy0">,</span><span class="st_h">'pdf_add_note'</span><span class="sy0">,</span><span class="st_h">'pdf_add_pdflink'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_add_thumbnail'</span><span class="sy0">,</span><span class="st_h">'pdf_add_weblink'</span><span class="sy0">,</span><span class="st_h">'pdf_arc'</span><span class="sy0">,</span><span class="st_h">'pdf_arcn'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_attach_file'</span><span class="sy0">,</span><span class="st_h">'pdf_begin_font'</span><span class="sy0">,</span><span class="st_h">'pdf_begin_glyph'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_begin_page'</span><span class="sy0">,</span><span class="st_h">'pdf_begin_pattern'</span><span class="sy0">,</span><span class="st_h">'pdf_begin_template'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_circle'</span><span class="sy0">,</span><span class="st_h">'pdf_clip'</span><span class="sy0">,</span><span class="st_h">'pdf_close'</span><span class="sy0">,</span><span class="st_h">'pdf_close_image'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_close_pdi'</span><span class="sy0">,</span><span class="st_h">'pdf_close_pdi_page'</span><span class="sy0">,</span><span class="st_h">'pdf_closepath'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_closepath_fill_stroke'</span><span class="sy0">,</span><span class="st_h">'pdf_closepath_stroke'</span><span class="sy0">,</span><span class="st_h">'pdf_concat'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_continue_text'</span><span class="sy0">,</span><span class="st_h">'pdf_create_gstate'</span><span class="sy0">,</span><span class="st_h">'pdf_create_pvf'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_curveto'</span><span class="sy0">,</span><span class="st_h">'pdf_delete'</span><span class="sy0">,</span><span class="st_h">'pdf_delete_pvf'</span><span class="sy0">,</span><span class="st_h">'pdf_encoding_set_char'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_end_font'</span><span class="sy0">,</span><span class="st_h">'pdf_end_glyph'</span><span class="sy0">,</span><span class="st_h">'pdf_end_page'</span><span class="sy0">,</span><span class="st_h">'pdf_end_pattern'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_end_template'</span><span class="sy0">,</span><span class="st_h">'pdf_endpath'</span><span class="sy0">,</span><span class="st_h">'pdf_fill'</span><span class="sy0">,</span><span class="st_h">'pdf_fill_imageblock'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_fill_pdfblock'</span><span class="sy0">,</span><span class="st_h">'pdf_fill_stroke'</span><span class="sy0">,</span><span class="st_h">'pdf_fill_textblock'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_findfont'</span><span class="sy0">,</span><span class="st_h">'pdf_fit_image'</span><span class="sy0">,</span><span class="st_h">'pdf_fit_pdi_page'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_fit_textline'</span><span class="sy0">,</span><span class="st_h">'pdf_get_apiname'</span><span class="sy0">,</span><span class="st_h">'pdf_get_buffer'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_get_errmsg'</span><span class="sy0">,</span><span class="st_h">'pdf_get_errnum'</span><span class="sy0">,</span><span class="st_h">'pdf_get_parameter'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_get_pdi_parameter'</span><span class="sy0">,</span><span class="st_h">'pdf_get_pdi_value'</span><span class="sy0">,</span><span class="st_h">'pdf_get_value'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_initgraphics'</span><span class="sy0">,</span><span class="st_h">'pdf_lineto'</span><span class="sy0">,</span><span class="st_h">'pdf_load_font'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_load_iccprofile'</span><span class="sy0">,</span><span class="st_h">'pdf_load_image'</span><span class="sy0">,</span><span class="st_h">'pdf_makespotcolor'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_moveto'</span><span class="sy0">,</span><span class="st_h">'pdf_new'</span><span class="sy0">,</span><span class="st_h">'pdf_open_ccitt'</span><span class="sy0">,</span><span class="st_h">'pdf_open_file'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_open_image'</span><span class="sy0">,</span><span class="st_h">'pdf_open_image_file'</span><span class="sy0">,</span><span class="st_h">'pdf_open_pdi'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_open_pdi_page'</span><span class="sy0">,</span><span class="st_h">'pdf_place_image'</span><span class="sy0">,</span><span class="st_h">'pdf_place_pdi_page'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_process_pdi'</span><span class="sy0">,</span><span class="st_h">'pdf_rect'</span><span class="sy0">,</span><span class="st_h">'pdf_restore'</span><span class="sy0">,</span><span class="st_h">'pdf_rotate'</span><span class="sy0">,</span><span class="st_h">'pdf_save'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_scale'</span><span class="sy0">,</span><span class="st_h">'pdf_set_border_color'</span><span class="sy0">,</span><span class="st_h">'pdf_set_border_dash'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_set_border_style'</span><span class="sy0">,</span><span class="st_h">'pdf_set_gstate'</span><span class="sy0">,</span><span class="st_h">'pdf_set_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_set_parameter'</span><span class="sy0">,</span><span class="st_h">'pdf_set_text_pos'</span><span class="sy0">,</span><span class="st_h">'pdf_set_value'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_setcolor'</span><span class="sy0">,</span><span class="st_h">'pdf_setdash'</span><span class="sy0">,</span><span class="st_h">'pdf_setdashpattern'</span><span class="sy0">,</span><span class="st_h">'pdf_setflat'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_setfont'</span><span class="sy0">,</span><span class="st_h">'pdf_setlinecap'</span><span class="sy0">,</span><span class="st_h">'pdf_setlinejoin'</span><span class="sy0">,</span><span class="st_h">'pdf_setlinewidth'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_setmatrix'</span><span class="sy0">,</span><span class="st_h">'pdf_setmiterlimit'</span><span class="sy0">,</span><span class="st_h">'pdf_setpolydash'</span><span class="sy0">,</span><span class="st_h">'pdf_shading'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_shading_pattern'</span><span class="sy0">,</span><span class="st_h">'pdf_shfill'</span><span class="sy0">,</span><span class="st_h">'pdf_show'</span><span class="sy0">,</span><span class="st_h">'pdf_show_boxed'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pdf_show_xy'</span><span class="sy0">,</span><span class="st_h">'pdf_skew'</span><span class="sy0">,</span><span class="st_h">'pdf_stringwidth'</span><span class="sy0">,</span><span class="st_h">'pdf_stroke'</span><span class="sy0">,</span></span></span> <span class="st_h">'pdf_translate'</span><span class="sy0">,</span><span class="st_h">'pdo_drivers'</span><span class="sy0">,</span><span class="st_h">'pfsockopen'</span><span class="sy0">,</span><span class="st_h">'pg_affected_rows'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_cancel_query'</span><span class="sy0">,</span><span class="st_h">'pg_clientencoding'</span><span class="sy0">,</span><span class="st_h">'pg_client_encoding'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_close'</span><span class="sy0">,</span><span class="st_h">'pg_cmdtuples'</span><span class="sy0">,</span><span class="st_h">'pg_connect'</span><span class="sy0">,</span><span class="st_h">'pg_connection_busy'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_connection_reset'</span><span class="sy0">,</span><span class="st_h">'pg_connection_status'</span><span class="sy0">,</span><span class="st_h">'pg_convert'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_copy_from'</span><span class="sy0">,</span><span class="st_h">'pg_copy_to'</span><span class="sy0">,</span><span class="st_h">'pg_dbname'</span><span class="sy0">,</span><span class="st_h">'pg_delete'</span><span class="sy0">,</span><span class="st_h">'pg_end_copy'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_errormessage'</span><span class="sy0">,</span><span class="st_h">'pg_escape_bytea'</span><span class="sy0">,</span><span class="st_h">'pg_escape_string'</span><span class="sy0">,</span><span class="st_h">'pg_exec'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_execute'</span><span class="sy0">,</span><span class="st_h">'pg_fetch_all'</span><span class="sy0">,</span><span class="st_h">'pg_fetch_all_columns'</span><span class="sy0">,</span><span class="st_h">'pg_fetch_array'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_fetch_assoc'</span><span class="sy0">,</span><span class="st_h">'pg_fetch_object'</span><span class="sy0">,</span><span class="st_h">'pg_fetch_result'</span><span class="sy0">,</span><span class="st_h">'pg_fetch_row'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_fieldisnull'</span><span class="sy0">,</span><span class="st_h">'pg_fieldname'</span><span class="sy0">,</span><span class="st_h">'pg_fieldnum'</span><span class="sy0">,</span><span class="st_h">'pg_fieldprtlen'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_fieldsize'</span><span class="sy0">,</span><span class="st_h">'pg_fieldtype'</span><span class="sy0">,</span><span class="st_h">'pg_field_is_null'</span><span class="sy0">,</span><span class="st_h">'pg_field_name'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_field_num'</span><span class="sy0">,</span><span class="st_h">'pg_field_prtlen'</span><span class="sy0">,</span><span class="st_h">'pg_field_size'</span><span class="sy0">,</span><span class="st_h">'pg_field_table'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_field_type'</span><span class="sy0">,</span><span class="st_h">'pg_field_type_oid'</span><span class="sy0">,</span><span class="st_h">'pg_free_result'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_freeresult'</span><span class="sy0">,</span><span class="st_h">'pg_get_notify'</span><span class="sy0">,</span><span class="st_h">'pg_get_pid'</span><span class="sy0">,</span><span class="st_h">'pg_get_result'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_getlastoid'</span><span class="sy0">,</span><span class="st_h">'pg_host'</span><span class="sy0">,</span><span class="st_h">'pg_insert'</span><span class="sy0">,</span><span class="st_h">'pg_last_error'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_last_notice'</span><span class="sy0">,</span><span class="st_h">'pg_last_oid'</span><span class="sy0">,</span><span class="st_h">'pg_loclose'</span><span class="sy0">,</span><span class="st_h">'pg_locreate'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_loexport'</span><span class="sy0">,</span><span class="st_h">'pg_loimport'</span><span class="sy0">,</span><span class="st_h">'pg_loopen'</span><span class="sy0">,</span><span class="st_h">'pg_loread'</span><span class="sy0">,</span><span class="st_h">'pg_loreadall'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_lounlink'</span><span class="sy0">,</span><span class="st_h">'pg_lowrite'</span><span class="sy0">,</span><span class="st_h">'pg_lo_close'</span><span class="sy0">,</span><span class="st_h">'pg_lo_create'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_lo_export'</span><span class="sy0">,</span><span class="st_h">'pg_lo_import'</span><span class="sy0">,</span><span class="st_h">'pg_lo_open'</span><span class="sy0">,</span><span class="st_h">'pg_lo_read'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_lo_read_all'</span><span class="sy0">,</span><span class="st_h">'pg_lo_seek'</span><span class="sy0">,</span><span class="st_h">'pg_lo_tell'</span><span class="sy0">,</span><span class="st_h">'pg_lo_unlink'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_lo_write'</span><span class="sy0">,</span><span class="st_h">'pg_meta_data'</span><span class="sy0">,</span><span class="st_h">'pg_numfields'</span><span class="sy0">,</span><span class="st_h">'pg_numrows'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_num_fields'</span><span class="sy0">,</span><span class="st_h">'pg_num_rows'</span><span class="sy0">,</span><span class="st_h">'pg_options'</span><span class="sy0">,</span><span class="st_h">'pg_parameter_status'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_pconnect'</span><span class="sy0">,</span><span class="st_h">'pg_ping'</span><span class="sy0">,</span><span class="st_h">'pg_port'</span><span class="sy0">,</span><span class="st_h">'pg_prepare'</span><span class="sy0">,</span><span class="st_h">'pg_put_line'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_query'</span><span class="sy0">,</span><span class="st_h">'pg_query_params'</span><span class="sy0">,</span><span class="st_h">'pg_result'</span><span class="sy0">,</span><span class="st_h">'pg_result_error'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_result_error_field'</span><span class="sy0">,</span><span class="st_h">'pg_result_seek'</span><span class="sy0">,</span><span class="st_h">'pg_result_status'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_select'</span><span class="sy0">,</span><span class="st_h">'pg_send_execute'</span><span class="sy0">,</span><span class="st_h">'pg_send_prepare'</span><span class="sy0">,</span><span class="st_h">'pg_send_query'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_send_query_params'</span><span class="sy0">,</span><span class="st_h">'pg_set_client_encoding'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_set_error_verbosity'</span><span class="sy0">,</span><span class="st_h">'pg_setclientencoding'</span><span class="sy0">,</span><span class="st_h">'pg_trace'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pg_transaction_status'</span><span class="sy0">,</span><span class="st_h">'pg_tty'</span><span class="sy0">,</span><span class="st_h">'pg_unescape_bytea'</span><span class="sy0">,</span><span class="st_h">'pg_untrace'</span><span class="sy0">,</span></span></span> <span class="st_h">'pg_update'</span><span class="sy0">,</span><span class="st_h">'pg_version'</span><span class="sy0">,</span><span class="st_h">'php_egg_logo_guid'</span><span class="sy0">,</span><span class="st_h">'php_ini_loaded_file'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'php_ini_scanned_files'</span><span class="sy0">,</span><span class="st_h">'php_logo_guid'</span><span class="sy0">,</span><span class="st_h">'php_real_logo_guid'</span><span class="sy0">,</span></span></span> <span class="st_h">'php_sapi_name'</span><span class="sy0">,</span><span class="st_h">'php_strip_whitespace'</span><span class="sy0">,</span><span class="st_h">'php_uname'</span><span class="sy0">,</span><span class="st_h">'phpcredits'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'phpdoc_xml_from_string'</span><span class="sy0">,</span><span class="st_h">'phpinfo'</span><span class="sy0">,</span><span class="st_h">'phpversion'</span><span class="sy0">,</span><span class="st_h">'pi'</span><span class="sy0">,</span><span class="st_h">'png2wbmp'</span><span class="sy0">,</span></span></span> <span class="st_h">'pop3_close'</span><span class="sy0">,</span><span class="st_h">'pop3_delete_message'</span><span class="sy0">,</span><span class="st_h">'pop3_get_account_size'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pop3_get_message'</span><span class="sy0">,</span><span class="st_h">'pop3_get_message_count'</span><span class="sy0">,</span></span></span> <span class="st_h">'pop3_get_message_header'</span><span class="sy0">,</span><span class="st_h">'pop3_get_message_ids'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'pop3_get_message_size'</span><span class="sy0">,</span><span class="st_h">'pop3_get_message_sizes'</span><span class="sy0">,</span><span class="st_h">'pop3_open'</span><span class="sy0">,</span></span></span> <span class="st_h">'pop3_undelete'</span><span class="sy0">,</span><span class="st_h">'popen'</span><span class="sy0">,</span><span class="st_h">'pos'</span><span class="sy0">,</span><span class="st_h">'posix_ctermid'</span><span class="sy0">,</span><span class="st_h">'posix_errno'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'posix_getcwd'</span><span class="sy0">,</span><span class="st_h">'posix_getegid'</span><span class="sy0">,</span><span class="st_h">'posix_geteuid'</span><span class="sy0">,</span><span class="st_h">'posix_getgid'</span><span class="sy0">,</span></span></span> <span class="st_h">'posix_getgrgid'</span><span class="sy0">,</span><span class="st_h">'posix_getgrnam'</span><span class="sy0">,</span><span class="st_h">'posix_getgroups'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'posix_getlogin'</span><span class="sy0">,</span><span class="st_h">'posix_getpgid'</span><span class="sy0">,</span><span class="st_h">'posix_getpgrp'</span><span class="sy0">,</span><span class="st_h">'posix_getpid'</span><span class="sy0">,</span></span></span> <span class="st_h">'posix_getppid'</span><span class="sy0">,</span><span class="st_h">'posix_getpwnam'</span><span class="sy0">,</span><span class="st_h">'posix_getpwuid'</span><span class="sy0">,</span><span class="st_h">'posix_getrlimit'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'posix_getsid'</span><span class="sy0">,</span><span class="st_h">'posix_getuid'</span><span class="sy0">,</span><span class="st_h">'posix_get_last_error'</span><span class="sy0">,</span><span class="st_h">'posix_isatty'</span><span class="sy0">,</span></span></span> <span class="st_h">'posix_kill'</span><span class="sy0">,</span><span class="st_h">'posix_mkfifo'</span><span class="sy0">,</span><span class="st_h">'posix_setegid'</span><span class="sy0">,</span><span class="st_h">'posix_seteuid'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'posix_setgid'</span><span class="sy0">,</span><span class="st_h">'posix_setpgid'</span><span class="sy0">,</span><span class="st_h">'posix_setsid'</span><span class="sy0">,</span><span class="st_h">'posix_setuid'</span><span class="sy0">,</span></span></span> <span class="st_h">'posix_strerror'</span><span class="sy0">,</span><span class="st_h">'posix_times'</span><span class="sy0">,</span><span class="st_h">'posix_ttyname'</span><span class="sy0">,</span><span class="st_h">'posix_uname'</span><span class="sy0">,</span><span class="st_h">'pow'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'preg_grep'</span><span class="sy0">,</span><span class="st_h">'preg_last_error'</span><span class="sy0">,</span><span class="st_h">'preg_match'</span><span class="sy0">,</span><span class="st_h">'preg_match_all'</span><span class="sy0">,</span></span></span> <span class="st_h">'preg_quote'</span><span class="sy0">,</span><span class="st_h">'preg_replace'</span><span class="sy0">,</span><span class="st_h">'preg_replace_callback'</span><span class="sy0">,</span><span class="st_h">'preg_split'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'prev'</span><span class="sy0">,</span><span class="st_h">'print_r'</span><span class="sy0">,</span><span class="st_h">'printf'</span><span class="sy0">,</span><span class="st_h">'proc_close'</span><span class="sy0">,</span><span class="st_h">'proc_get_status'</span><span class="sy0">,</span></span></span> <span class="st_h">'proc_open'</span><span class="sy0">,</span><span class="st_h">'proc_terminate'</span><span class="sy0">,</span><span class="st_h">'putenv'</span><span class="sy0">,</span><span class="st_h">'quoted_printable_decode'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'quotemeta'</span><span class="sy0">,</span><span class="st_h">'rad2deg'</span><span class="sy0">,</span><span class="st_h">'radius_acct_open'</span><span class="sy0">,</span><span class="st_h">'radius_add_server'</span><span class="sy0">,</span></span></span> <span class="st_h">'radius_auth_open'</span><span class="sy0">,</span><span class="st_h">'radius_close'</span><span class="sy0">,</span><span class="st_h">'radius_config'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'radius_create_request'</span><span class="sy0">,</span><span class="st_h">'radius_cvt_addr'</span><span class="sy0">,</span><span class="st_h">'radius_cvt_int'</span><span class="sy0">,</span></span></span> <span class="st_h">'radius_cvt_string'</span><span class="sy0">,</span><span class="st_h">'radius_demangle'</span><span class="sy0">,</span><span class="st_h">'radius_demangle_mppe_key'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'radius_get_attr'</span><span class="sy0">,</span><span class="st_h">'radius_get_vendor_attr'</span><span class="sy0">,</span><span class="st_h">'radius_put_addr'</span><span class="sy0">,</span></span></span> <span class="st_h">'radius_put_attr'</span><span class="sy0">,</span><span class="st_h">'radius_put_int'</span><span class="sy0">,</span><span class="st_h">'radius_put_string'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'radius_put_vendor_addr'</span><span class="sy0">,</span><span class="st_h">'radius_put_vendor_attr'</span><span class="sy0">,</span></span></span> <span class="st_h">'radius_put_vendor_int'</span><span class="sy0">,</span><span class="st_h">'radius_put_vendor_string'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'radius_request_authenticator'</span><span class="sy0">,</span><span class="st_h">'radius_send_request'</span><span class="sy0">,</span></span></span> <span class="st_h">'radius_server_secret'</span><span class="sy0">,</span><span class="st_h">'radius_strerror'</span><span class="sy0">,</span><span class="st_h">'rand'</span><span class="sy0">,</span><span class="st_h">'range'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'rawurldecode'</span><span class="sy0">,</span><span class="st_h">'rawurlencode'</span><span class="sy0">,</span><span class="st_h">'read_exif_data'</span><span class="sy0">,</span><span class="st_h">'readdir'</span><span class="sy0">,</span><span class="st_h">'readfile'</span><span class="sy0">,</span></span></span> <span class="st_h">'readgzfile'</span><span class="sy0">,</span><span class="st_h">'readlink'</span><span class="sy0">,</span><span class="st_h">'realpath'</span><span class="sy0">,</span><span class="st_h">'reg_close_key'</span><span class="sy0">,</span><span class="st_h">'reg_create_key'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'reg_enum_key'</span><span class="sy0">,</span><span class="st_h">'reg_enum_value'</span><span class="sy0">,</span><span class="st_h">'reg_get_value'</span><span class="sy0">,</span><span class="st_h">'reg_open_key'</span><span class="sy0">,</span></span></span> <span class="st_h">'reg_set_value'</span><span class="sy0">,</span><span class="st_h">'register_shutdown_function'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'register_tick_function'</span><span class="sy0">,</span><span class="st_h">'rename'</span><span class="sy0">,</span><span class="st_h">'res_close'</span><span class="sy0">,</span><span class="st_h">'res_get'</span><span class="sy0">,</span><span class="st_h">'res_list'</span><span class="sy0">,</span></span></span> <span class="st_h">'res_list_type'</span><span class="sy0">,</span><span class="st_h">'res_open'</span><span class="sy0">,</span><span class="st_h">'res_set'</span><span class="sy0">,</span><span class="st_h">'reset'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'restore_error_handler'</span><span class="sy0">,</span><span class="st_h">'restore_include_path'</span><span class="sy0">,</span><span class="st_h">'rewind'</span><span class="sy0">,</span><span class="st_h">'rewinddir'</span><span class="sy0">,</span></span></span> <span class="st_h">'rmdir'</span><span class="sy0">,</span><span class="st_h">'round'</span><span class="sy0">,</span><span class="st_h">'rsort'</span><span class="sy0">,</span><span class="st_h">'rtrim'</span><span class="sy0">,</span><span class="st_h">'runkit_class_adopt'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'runkit_class_emancipate'</span><span class="sy0">,</span><span class="st_h">'runkit_constant_add'</span><span class="sy0">,</span></span></span> <span class="st_h">'runkit_constant_redefine'</span><span class="sy0">,</span><span class="st_h">'runkit_constant_remove'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'runkit_default_property_add'</span><span class="sy0">,</span><span class="st_h">'runkit_function_add'</span><span class="sy0">,</span></span></span> <span class="st_h">'runkit_function_copy'</span><span class="sy0">,</span><span class="st_h">'runkit_function_redefine'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'runkit_function_remove'</span><span class="sy0">,</span><span class="st_h">'runkit_function_rename'</span><span class="sy0">,</span><span class="st_h">'runkit_import'</span><span class="sy0">,</span></span></span> <span class="st_h">'runkit_lint'</span><span class="sy0">,</span><span class="st_h">'runkit_lint_file'</span><span class="sy0">,</span><span class="st_h">'runkit_method_add'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'runkit_method_copy'</span><span class="sy0">,</span><span class="st_h">'runkit_method_redefine'</span><span class="sy0">,</span></span></span> <span class="st_h">'runkit_method_remove'</span><span class="sy0">,</span><span class="st_h">'runkit_method_rename'</span><span class="sy0">,</span><span class="st_h">'runkit_object_id'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'runkit_return_value_used'</span><span class="sy0">,</span><span class="st_h">'runkit_sandbox_output_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'runkit_superglobals'</span><span class="sy0">,</span><span class="st_h">'runkit_zval_inspect'</span><span class="sy0">,</span><span class="st_h">'scandir'</span><span class="sy0">,</span><span class="st_h">'sem_acquire'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sem_get'</span><span class="sy0">,</span><span class="st_h">'sem_release'</span><span class="sy0">,</span><span class="st_h">'sem_remove'</span><span class="sy0">,</span><span class="st_h">'serialize'</span><span class="sy0">,</span></span></span> <span class="st_h">'session_cache_expire'</span><span class="sy0">,</span><span class="st_h">'session_cache_limiter'</span><span class="sy0">,</span><span class="st_h">'session_commit'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'session_decode'</span><span class="sy0">,</span><span class="st_h">'session_destroy'</span><span class="sy0">,</span><span class="st_h">'session_encode'</span><span class="sy0">,</span></span></span> <span class="st_h">'session_get_cookie_params'</span><span class="sy0">,</span><span class="st_h">'session_id'</span><span class="sy0">,</span><span class="st_h">'session_is_registered'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'session_module_name'</span><span class="sy0">,</span><span class="st_h">'session_name'</span><span class="sy0">,</span><span class="st_h">'session_regenerate_id'</span><span class="sy0">,</span></span></span> <span class="st_h">'session_register'</span><span class="sy0">,</span><span class="st_h">'session_save_path'</span><span class="sy0">,</span><span class="st_h">'session_set_cookie_params'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'session_set_save_handler'</span><span class="sy0">,</span><span class="st_h">'session_start'</span><span class="sy0">,</span><span class="st_h">'session_unregister'</span><span class="sy0">,</span></span></span> <span class="st_h">'session_unset'</span><span class="sy0">,</span><span class="st_h">'session_write_close'</span><span class="sy0">,</span><span class="st_h">'set_content'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'set_error_handler'</span><span class="sy0">,</span><span class="st_h">'set_file_buffer'</span><span class="sy0">,</span><span class="st_h">'set_include_path'</span><span class="sy0">,</span></span></span> <span class="st_h">'set_magic_quotes_runtime'</span><span class="sy0">,</span><span class="st_h">'set_socket_blocking'</span><span class="sy0">,</span><span class="st_h">'set_time_limit'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'setcookie'</span><span class="sy0">,</span><span class="st_h">'setlocale'</span><span class="sy0">,</span><span class="st_h">'setrawcookie'</span><span class="sy0">,</span><span class="st_h">'settype'</span><span class="sy0">,</span><span class="st_h">'sha1'</span><span class="sy0">,</span><span class="st_h">'sha1_file'</span><span class="sy0">,</span></span></span> <span class="st_h">'shell_exec'</span><span class="sy0">,</span><span class="st_h">'shmop_close'</span><span class="sy0">,</span><span class="st_h">'shmop_delete'</span><span class="sy0">,</span><span class="st_h">'shmop_open'</span><span class="sy0">,</span><span class="st_h">'shmop_read'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'shmop_size'</span><span class="sy0">,</span><span class="st_h">'shmop_write'</span><span class="sy0">,</span><span class="st_h">'shm_attach'</span><span class="sy0">,</span><span class="st_h">'shm_detach'</span><span class="sy0">,</span><span class="st_h">'shm_get_var'</span><span class="sy0">,</span></span></span> <span class="st_h">'shm_put_var'</span><span class="sy0">,</span><span class="st_h">'shm_remove'</span><span class="sy0">,</span><span class="st_h">'shm_remove_var'</span><span class="sy0">,</span><span class="st_h">'show_source'</span><span class="sy0">,</span><span class="st_h">'shuffle'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'similar_text'</span><span class="sy0">,</span><span class="st_h">'simplexml_import_dom'</span><span class="sy0">,</span><span class="st_h">'simplexml_load_file'</span><span class="sy0">,</span></span></span> <span class="st_h">'simplexml_load_string'</span><span class="sy0">,</span><span class="st_h">'sin'</span><span class="sy0">,</span><span class="st_h">'sinh'</span><span class="sy0">,</span><span class="st_h">'sizeof'</span><span class="sy0">,</span><span class="st_h">'sleep'</span><span class="sy0">,</span><span class="st_h">'smtp_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'smtp_cmd_data'</span><span class="sy0">,</span><span class="st_h">'smtp_cmd_mail'</span><span class="sy0">,</span><span class="st_h">'smtp_cmd_rcpt'</span><span class="sy0">,</span><span class="st_h">'smtp_connect'</span><span class="sy0">,</span></span></span> <span class="st_h">'snmp_get_quick_print'</span><span class="sy0">,</span><span class="st_h">'snmp_get_valueretrieval'</span><span class="sy0">,</span><span class="st_h">'snmp_read_mib'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'snmp_set_quick_print'</span><span class="sy0">,</span><span class="st_h">'snmp_set_valueretrieval'</span><span class="sy0">,</span><span class="st_h">'snmp2_get'</span><span class="sy0">,</span></span></span> <span class="st_h">'snmp2_getnext'</span><span class="sy0">,</span><span class="st_h">'snmp2_real_walk'</span><span class="sy0">,</span><span class="st_h">'snmp2_set'</span><span class="sy0">,</span><span class="st_h">'snmp2_walk'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'snmp3_get'</span><span class="sy0">,</span><span class="st_h">'snmp3_getnext'</span><span class="sy0">,</span><span class="st_h">'snmp3_real_walk'</span><span class="sy0">,</span><span class="st_h">'snmp3_set'</span><span class="sy0">,</span></span></span> <span class="st_h">'snmp3_walk'</span><span class="sy0">,</span><span class="st_h">'snmpget'</span><span class="sy0">,</span><span class="st_h">'snmpgetnext'</span><span class="sy0">,</span><span class="st_h">'snmprealwalk'</span><span class="sy0">,</span><span class="st_h">'snmpset'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'snmpwalk'</span><span class="sy0">,</span><span class="st_h">'snmpwalkoid'</span><span class="sy0">,</span><span class="st_h">'socket_accept'</span><span class="sy0">,</span><span class="st_h">'socket_bind'</span><span class="sy0">,</span></span></span> <span class="st_h">'socket_clear_error'</span><span class="sy0">,</span><span class="st_h">'socket_close'</span><span class="sy0">,</span><span class="st_h">'socket_connect'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'socket_create'</span><span class="sy0">,</span><span class="st_h">'socket_create_listen'</span><span class="sy0">,</span><span class="st_h">'socket_create_pair'</span><span class="sy0">,</span></span></span> <span class="st_h">'socket_getopt'</span><span class="sy0">,</span><span class="st_h">'socket_getpeername'</span><span class="sy0">,</span><span class="st_h">'socket_getsockname'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'socket_get_option'</span><span class="sy0">,</span><span class="st_h">'socket_get_status'</span><span class="sy0">,</span><span class="st_h">'socket_iovec_add'</span><span class="sy0">,</span></span></span> <span class="st_h">'socket_iovec_alloc'</span><span class="sy0">,</span><span class="st_h">'socket_iovec_delete'</span><span class="sy0">,</span><span class="st_h">'socket_iovec_fetch'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'socket_iovec_free'</span><span class="sy0">,</span><span class="st_h">'socket_iovec_set'</span><span class="sy0">,</span><span class="st_h">'socket_last_error'</span><span class="sy0">,</span></span></span> <span class="st_h">'socket_listen'</span><span class="sy0">,</span><span class="st_h">'socket_read'</span><span class="sy0">,</span><span class="st_h">'socket_readv'</span><span class="sy0">,</span><span class="st_h">'socket_recv'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'socket_recvfrom'</span><span class="sy0">,</span><span class="st_h">'socket_recvmsg'</span><span class="sy0">,</span><span class="st_h">'socket_select'</span><span class="sy0">,</span><span class="st_h">'socket_send'</span><span class="sy0">,</span></span></span> <span class="st_h">'socket_sendmsg'</span><span class="sy0">,</span><span class="st_h">'socket_sendto'</span><span class="sy0">,</span><span class="st_h">'socket_setopt'</span><span class="sy0">,</span><span class="st_h">'socket_set_block'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'socket_set_blocking'</span><span class="sy0">,</span><span class="st_h">'socket_set_nonblock'</span><span class="sy0">,</span><span class="st_h">'socket_set_option'</span><span class="sy0">,</span></span></span> <span class="st_h">'socket_set_timeout'</span><span class="sy0">,</span><span class="st_h">'socket_shutdown'</span><span class="sy0">,</span><span class="st_h">'socket_strerror'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'socket_write'</span><span class="sy0">,</span><span class="st_h">'socket_writev'</span><span class="sy0">,</span><span class="st_h">'sort'</span><span class="sy0">,</span><span class="st_h">'soundex'</span><span class="sy0">,</span><span class="st_h">'spl_autoload'</span><span class="sy0">,</span></span></span> <span class="st_h">'spl_autoload_call'</span><span class="sy0">,</span><span class="st_h">'spl_autoload_extensions'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'spl_autoload_functions'</span><span class="sy0">,</span><span class="st_h">'spl_autoload_register'</span><span class="sy0">,</span></span></span> <span class="st_h">'spl_autoload_unregister'</span><span class="sy0">,</span><span class="st_h">'spl_classes'</span><span class="sy0">,</span><span class="st_h">'spl_object_hash'</span><span class="sy0">,</span><span class="st_h">'split'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'spliti'</span><span class="sy0">,</span><span class="st_h">'sprintf'</span><span class="sy0">,</span><span class="st_h">'sql_regcase'</span><span class="sy0">,</span><span class="st_h">'sqlite_array_query'</span><span class="sy0">,</span></span></span> <span class="st_h">'sqlite_busy_timeout'</span><span class="sy0">,</span><span class="st_h">'sqlite_changes'</span><span class="sy0">,</span><span class="st_h">'sqlite_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sqlite_column'</span><span class="sy0">,</span><span class="st_h">'sqlite_create_aggregate'</span><span class="sy0">,</span><span class="st_h">'sqlite_create_function'</span><span class="sy0">,</span></span></span> <span class="st_h">'sqlite_current'</span><span class="sy0">,</span><span class="st_h">'sqlite_error_string'</span><span class="sy0">,</span><span class="st_h">'sqlite_escape_string'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sqlite_exec'</span><span class="sy0">,</span><span class="st_h">'sqlite_factory'</span><span class="sy0">,</span><span class="st_h">'sqlite_fetch_all'</span><span class="sy0">,</span></span></span> <span class="st_h">'sqlite_fetch_array'</span><span class="sy0">,</span><span class="st_h">'sqlite_fetch_column_types'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sqlite_fetch_object'</span><span class="sy0">,</span><span class="st_h">'sqlite_fetch_single'</span><span class="sy0">,</span><span class="st_h">'sqlite_fetch_string'</span><span class="sy0">,</span></span></span> <span class="st_h">'sqlite_field_name'</span><span class="sy0">,</span><span class="st_h">'sqlite_has_more'</span><span class="sy0">,</span><span class="st_h">'sqlite_has_prev'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sqlite_last_error'</span><span class="sy0">,</span><span class="st_h">'sqlite_last_insert_rowid'</span><span class="sy0">,</span><span class="st_h">'sqlite_libencoding'</span><span class="sy0">,</span></span></span> <span class="st_h">'sqlite_libversion'</span><span class="sy0">,</span><span class="st_h">'sqlite_next'</span><span class="sy0">,</span><span class="st_h">'sqlite_num_fields'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sqlite_num_rows'</span><span class="sy0">,</span><span class="st_h">'sqlite_open'</span><span class="sy0">,</span><span class="st_h">'sqlite_popen'</span><span class="sy0">,</span><span class="st_h">'sqlite_prev'</span><span class="sy0">,</span></span></span> <span class="st_h">'sqlite_query'</span><span class="sy0">,</span><span class="st_h">'sqlite_rewind'</span><span class="sy0">,</span><span class="st_h">'sqlite_seek'</span><span class="sy0">,</span><span class="st_h">'sqlite_single_query'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sqlite_udf_decode_binary'</span><span class="sy0">,</span><span class="st_h">'sqlite_udf_encode_binary'</span><span class="sy0">,</span></span></span> <span class="st_h">'sqlite_unbuffered_query'</span><span class="sy0">,</span><span class="st_h">'sqlite_valid'</span><span class="sy0">,</span><span class="st_h">'sqrt'</span><span class="sy0">,</span><span class="st_h">'srand'</span><span class="sy0">,</span><span class="st_h">'sscanf'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ssh2_auth_hostbased_file'</span><span class="sy0">,</span><span class="st_h">'ssh2_auth_none'</span><span class="sy0">,</span><span class="st_h">'ssh2_auth_password'</span><span class="sy0">,</span></span></span> <span class="st_h">'ssh2_auth_pubkey_file'</span><span class="sy0">,</span><span class="st_h">'ssh2_connect'</span><span class="sy0">,</span><span class="st_h">'ssh2_exec'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ssh2_fetch_stream'</span><span class="sy0">,</span><span class="st_h">'ssh2_fingerprint'</span><span class="sy0">,</span><span class="st_h">'ssh2_forward_accept'</span><span class="sy0">,</span></span></span> <span class="st_h">'ssh2_forward_listen'</span><span class="sy0">,</span><span class="st_h">'ssh2_methods_negotiated'</span><span class="sy0">,</span><span class="st_h">'ssh2_poll'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ssh2_publickey_add'</span><span class="sy0">,</span><span class="st_h">'ssh2_publickey_init'</span><span class="sy0">,</span><span class="st_h">'ssh2_publickey_list'</span><span class="sy0">,</span></span></span> <span class="st_h">'ssh2_publickey_remove'</span><span class="sy0">,</span><span class="st_h">'ssh2_scp_recv'</span><span class="sy0">,</span><span class="st_h">'ssh2_scp_send'</span><span class="sy0">,</span><span class="st_h">'ssh2_sftp'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ssh2_sftp_lstat'</span><span class="sy0">,</span><span class="st_h">'ssh2_sftp_mkdir'</span><span class="sy0">,</span><span class="st_h">'ssh2_sftp_readlink'</span><span class="sy0">,</span></span></span> <span class="st_h">'ssh2_sftp_realpath'</span><span class="sy0">,</span><span class="st_h">'ssh2_sftp_rename'</span><span class="sy0">,</span><span class="st_h">'ssh2_sftp_rmdir'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ssh2_sftp_stat'</span><span class="sy0">,</span><span class="st_h">'ssh2_sftp_symlink'</span><span class="sy0">,</span><span class="st_h">'ssh2_sftp_unlink'</span><span class="sy0">,</span></span></span> <span class="st_h">'ssh2_shell'</span><span class="sy0">,</span><span class="st_h">'ssh2_tunnel'</span><span class="sy0">,</span><span class="st_h">'stat'</span><span class="sy0">,</span><span class="st_h">'stats_absolute_deviation'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_cdf_beta'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_binomial'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_cauchy'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_cdf_chisquare'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_exponential'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_f'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_cdf_gamma'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_laplace'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_logistic'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_cdf_negative_binomial'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_noncentral_chisquare'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_cdf_noncentral_f'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_noncentral_t'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_cdf_normal'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_poisson'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_t'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_cdf_uniform'</span><span class="sy0">,</span><span class="st_h">'stats_cdf_weibull'</span><span class="sy0">,</span><span class="st_h">'stats_covariance'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_dens_beta'</span><span class="sy0">,</span><span class="st_h">'stats_dens_cauchy'</span><span class="sy0">,</span><span class="st_h">'stats_dens_chisquare'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_dens_exponential'</span><span class="sy0">,</span><span class="st_h">'stats_dens_f'</span><span class="sy0">,</span><span class="st_h">'stats_dens_gamma'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_dens_laplace'</span><span class="sy0">,</span><span class="st_h">'stats_dens_logistic'</span><span class="sy0">,</span><span class="st_h">'stats_dens_normal'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_dens_pmf_binomial'</span><span class="sy0">,</span><span class="st_h">'stats_dens_pmf_hypergeometric'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_dens_pmf_negative_binomial'</span><span class="sy0">,</span><span class="st_h">'stats_dens_pmf_poisson'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_dens_t'</span><span class="sy0">,</span><span class="st_h">'stats_dens_uniform'</span><span class="sy0">,</span><span class="st_h">'stats_dens_weibull'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_harmonic_mean'</span><span class="sy0">,</span><span class="st_h">'stats_kurtosis'</span><span class="sy0">,</span><span class="st_h">'stats_rand_gen_beta'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_rand_gen_chisquare'</span><span class="sy0">,</span><span class="st_h">'stats_rand_gen_exponential'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_rand_gen_f'</span><span class="sy0">,</span><span class="st_h">'stats_rand_gen_funiform'</span><span class="sy0">,</span><span class="st_h">'stats_rand_gen_gamma'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_rand_gen_ipoisson'</span><span class="sy0">,</span><span class="st_h">'stats_rand_gen_iuniform'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_rand_gen_noncenral_f'</span><span class="sy0">,</span><span class="st_h">'stats_rand_gen_noncentral_chisquare'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_rand_gen_noncentral_t'</span><span class="sy0">,</span><span class="st_h">'stats_rand_gen_normal'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_rand_gen_t'</span><span class="sy0">,</span><span class="st_h">'stats_rand_getsd'</span><span class="sy0">,</span><span class="st_h">'stats_rand_ibinomial'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_rand_ibinomial_negative'</span><span class="sy0">,</span><span class="st_h">'stats_rand_ignlgi'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_rand_phrase_to_seeds'</span><span class="sy0">,</span><span class="st_h">'stats_rand_ranf'</span><span class="sy0">,</span><span class="st_h">'stats_rand_setall'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_skew'</span><span class="sy0">,</span><span class="st_h">'stats_standard_deviation'</span><span class="sy0">,</span><span class="st_h">'stats_stat_binomial_coef'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_stat_correlation'</span><span class="sy0">,</span><span class="st_h">'stats_stat_factorial'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_stat_independent_t'</span><span class="sy0">,</span><span class="st_h">'stats_stat_innerproduct'</span><span class="sy0">,</span></span></span> <span class="st_h">'stats_stat_paired_t'</span><span class="sy0">,</span><span class="st_h">'stats_stat_percentile'</span><span class="sy0">,</span><span class="st_h">'stats_stat_powersum'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stats_variance'</span><span class="sy0">,</span><span class="st_h">'strcasecmp'</span><span class="sy0">,</span><span class="st_h">'strchr'</span><span class="sy0">,</span><span class="st_h">'strcmp'</span><span class="sy0">,</span><span class="st_h">'strcoll'</span><span class="sy0">,</span><span class="st_h">'strcspn'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_bucket_append'</span><span class="sy0">,</span><span class="st_h">'stream_bucket_make_writeable'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_bucket_new'</span><span class="sy0">,</span><span class="st_h">'stream_bucket_prepend'</span><span class="sy0">,</span><span class="st_h">'stream_context_create'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_context_get_default'</span><span class="sy0">,</span><span class="st_h">'stream_context_get_options'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_context_set_default'</span><span class="sy0">,</span><span class="st_h">'stream_context_set_option'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_context_set_params'</span><span class="sy0">,</span><span class="st_h">'stream_copy_to_stream'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_encoding'</span><span class="sy0">,</span><span class="st_h">'stream_filter_append'</span><span class="sy0">,</span><span class="st_h">'stream_filter_prepend'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_filter_register'</span><span class="sy0">,</span><span class="st_h">'stream_filter_remove'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_get_contents'</span><span class="sy0">,</span><span class="st_h">'stream_get_filters'</span><span class="sy0">,</span><span class="st_h">'stream_get_line'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_get_meta_data'</span><span class="sy0">,</span><span class="st_h">'stream_get_transports'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_get_wrappers'</span><span class="sy0">,</span><span class="st_h">'stream_is_local'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_notification_callback'</span><span class="sy0">,</span><span class="st_h">'stream_register_wrapper'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_resolve_include_path'</span><span class="sy0">,</span><span class="st_h">'stream_select'</span><span class="sy0">,</span><span class="st_h">'stream_set_blocking'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_set_timeout'</span><span class="sy0">,</span><span class="st_h">'stream_set_write_buffer'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_socket_accept'</span><span class="sy0">,</span><span class="st_h">'stream_socket_client'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_socket_enable_crypto'</span><span class="sy0">,</span><span class="st_h">'stream_socket_get_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_socket_pair'</span><span class="sy0">,</span><span class="st_h">'stream_socket_recvfrom'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_socket_sendto'</span><span class="sy0">,</span><span class="st_h">'stream_socket_server'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_socket_shutdown'</span><span class="sy0">,</span><span class="st_h">'stream_supports_lock'</span><span class="sy0">,</span></span></span> <span class="st_h">'stream_wrapper_register'</span><span class="sy0">,</span><span class="st_h">'stream_wrapper_restore'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'stream_wrapper_unregister'</span><span class="sy0">,</span><span class="st_h">'strftime'</span><span class="sy0">,</span><span class="st_h">'stripcslashes'</span><span class="sy0">,</span><span class="st_h">'stripos'</span><span class="sy0">,</span></span></span> <span class="st_h">'stripslashes'</span><span class="sy0">,</span><span class="st_h">'strip_tags'</span><span class="sy0">,</span><span class="st_h">'stristr'</span><span class="sy0">,</span><span class="st_h">'strlen'</span><span class="sy0">,</span><span class="st_h">'strnatcasecmp'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'strnatcmp'</span><span class="sy0">,</span><span class="st_h">'strpbrk'</span><span class="sy0">,</span><span class="st_h">'strncasecmp'</span><span class="sy0">,</span><span class="st_h">'strncmp'</span><span class="sy0">,</span><span class="st_h">'strpos'</span><span class="sy0">,</span><span class="st_h">'strrchr'</span><span class="sy0">,</span></span></span> <span class="st_h">'strrev'</span><span class="sy0">,</span><span class="st_h">'strripos'</span><span class="sy0">,</span><span class="st_h">'strrpos'</span><span class="sy0">,</span><span class="st_h">'strspn'</span><span class="sy0">,</span><span class="st_h">'strstr'</span><span class="sy0">,</span><span class="st_h">'strtok'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'strtolower'</span><span class="sy0">,</span><span class="st_h">'strtotime'</span><span class="sy0">,</span><span class="st_h">'strtoupper'</span><span class="sy0">,</span><span class="st_h">'strtr'</span><span class="sy0">,</span><span class="st_h">'strval'</span><span class="sy0">,</span></span></span> <span class="st_h">'str_ireplace'</span><span class="sy0">,</span><span class="st_h">'str_pad'</span><span class="sy0">,</span><span class="st_h">'str_repeat'</span><span class="sy0">,</span><span class="st_h">'str_replace'</span><span class="sy0">,</span><span class="st_h">'str_rot13'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'str_split'</span><span class="sy0">,</span><span class="st_h">'str_shuffle'</span><span class="sy0">,</span><span class="st_h">'str_word_count'</span><span class="sy0">,</span><span class="st_h">'substr'</span><span class="sy0">,</span></span></span> <span class="st_h">'substr_compare'</span><span class="sy0">,</span><span class="st_h">'substr_count'</span><span class="sy0">,</span><span class="st_h">'substr_replace'</span><span class="sy0">,</span><span class="st_h">'svn_add'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'svn_auth_get_parameter'</span><span class="sy0">,</span><span class="st_h">'svn_auth_set_parameter'</span><span class="sy0">,</span><span class="st_h">'svn_cat'</span><span class="sy0">,</span></span></span> <span class="st_h">'svn_checkout'</span><span class="sy0">,</span><span class="st_h">'svn_cleanup'</span><span class="sy0">,</span><span class="st_h">'svn_client_version'</span><span class="sy0">,</span><span class="st_h">'svn_commit'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'svn_diff'</span><span class="sy0">,</span><span class="st_h">'svn_export'</span><span class="sy0">,</span><span class="st_h">'svn_fs_abort_txn'</span><span class="sy0">,</span><span class="st_h">'svn_fs_apply_text'</span><span class="sy0">,</span></span></span> <span class="st_h">'svn_fs_begin_txn2'</span><span class="sy0">,</span><span class="st_h">'svn_fs_change_node_prop'</span><span class="sy0">,</span><span class="st_h">'svn_fs_check_path'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'svn_fs_contents_changed'</span><span class="sy0">,</span><span class="st_h">'svn_fs_copy'</span><span class="sy0">,</span><span class="st_h">'svn_fs_delete'</span><span class="sy0">,</span></span></span> <span class="st_h">'svn_fs_dir_entries'</span><span class="sy0">,</span><span class="st_h">'svn_fs_file_contents'</span><span class="sy0">,</span><span class="st_h">'svn_fs_file_length'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'svn_fs_is_dir'</span><span class="sy0">,</span><span class="st_h">'svn_fs_is_file'</span><span class="sy0">,</span><span class="st_h">'svn_fs_make_dir'</span><span class="sy0">,</span></span></span> <span class="st_h">'svn_fs_make_file'</span><span class="sy0">,</span><span class="st_h">'svn_fs_node_created_rev'</span><span class="sy0">,</span><span class="st_h">'svn_fs_node_prop'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'svn_fs_props_changed'</span><span class="sy0">,</span><span class="st_h">'svn_fs_revision_prop'</span><span class="sy0">,</span></span></span> <span class="st_h">'svn_fs_revision_root'</span><span class="sy0">,</span><span class="st_h">'svn_fs_txn_root'</span><span class="sy0">,</span><span class="st_h">'svn_fs_youngest_rev'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'svn_import'</span><span class="sy0">,</span><span class="st_h">'svn_info'</span><span class="sy0">,</span><span class="st_h">'svn_log'</span><span class="sy0">,</span><span class="st_h">'svn_ls'</span><span class="sy0">,</span><span class="st_h">'svn_repos_create'</span><span class="sy0">,</span></span></span> <span class="st_h">'svn_repos_fs'</span><span class="sy0">,</span><span class="st_h">'svn_repos_fs_begin_txn_for_commit'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'svn_repos_fs_commit_txn'</span><span class="sy0">,</span><span class="st_h">'svn_repos_hotcopy'</span><span class="sy0">,</span><span class="st_h">'svn_repos_open'</span><span class="sy0">,</span></span></span> <span class="st_h">'svn_repos_recover'</span><span class="sy0">,</span><span class="st_h">'svn_status'</span><span class="sy0">,</span><span class="st_h">'svn_update'</span><span class="sy0">,</span><span class="st_h">'symlink'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'sys_get_temp_dir'</span><span class="sy0">,</span><span class="st_h">'syslog'</span><span class="sy0">,</span><span class="st_h">'system'</span><span class="sy0">,</span><span class="st_h">'tan'</span><span class="sy0">,</span><span class="st_h">'tanh'</span><span class="sy0">,</span><span class="st_h">'tempnam'</span><span class="sy0">,</span></span></span> <span class="st_h">'textdomain'</span><span class="sy0">,</span><span class="st_h">'thread_get'</span><span class="sy0">,</span><span class="st_h">'thread_include'</span><span class="sy0">,</span><span class="st_h">'thread_lock'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'thread_lock_try'</span><span class="sy0">,</span><span class="st_h">'thread_mutex_destroy'</span><span class="sy0">,</span><span class="st_h">'thread_mutex_init'</span><span class="sy0">,</span></span></span> <span class="st_h">'thread_set'</span><span class="sy0">,</span><span class="st_h">'thread_start'</span><span class="sy0">,</span><span class="st_h">'thread_unlock'</span><span class="sy0">,</span><span class="st_h">'tidy_access_count'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'tidy_clean_repair'</span><span class="sy0">,</span><span class="st_h">'tidy_config_count'</span><span class="sy0">,</span><span class="st_h">'tidy_diagnose'</span><span class="sy0">,</span></span></span> <span class="st_h">'tidy_error_count'</span><span class="sy0">,</span><span class="st_h">'tidy_get_body'</span><span class="sy0">,</span><span class="st_h">'tidy_get_config'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'tidy_get_error_buffer'</span><span class="sy0">,</span><span class="st_h">'tidy_get_head'</span><span class="sy0">,</span><span class="st_h">'tidy_get_html'</span><span class="sy0">,</span></span></span> <span class="st_h">'tidy_get_html_ver'</span><span class="sy0">,</span><span class="st_h">'tidy_get_output'</span><span class="sy0">,</span><span class="st_h">'tidy_get_release'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'tidy_get_root'</span><span class="sy0">,</span><span class="st_h">'tidy_get_status'</span><span class="sy0">,</span><span class="st_h">'tidy_getopt'</span><span class="sy0">,</span><span class="st_h">'tidy_is_xhtml'</span><span class="sy0">,</span></span></span> <span class="st_h">'tidy_is_xml'</span><span class="sy0">,</span><span class="st_h">'tidy_parse_file'</span><span class="sy0">,</span><span class="st_h">'tidy_parse_string'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'tidy_repair_file'</span><span class="sy0">,</span><span class="st_h">'tidy_repair_string'</span><span class="sy0">,</span><span class="st_h">'tidy_warning_count'</span><span class="sy0">,</span><span class="st_h">'time'</span><span class="sy0">,</span></span></span> <span class="st_h">'timezone_abbreviations_list'</span><span class="sy0">,</span><span class="st_h">'timezone_identifiers_list'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'timezone_name_from_abbr'</span><span class="sy0">,</span><span class="st_h">'timezone_name_get'</span><span class="sy0">,</span><span class="st_h">'timezone_offset_get'</span><span class="sy0">,</span></span></span> <span class="st_h">'timezone_open'</span><span class="sy0">,</span><span class="st_h">'timezone_transitions_get'</span><span class="sy0">,</span><span class="st_h">'tmpfile'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'token_get_all'</span><span class="sy0">,</span><span class="st_h">'token_name'</span><span class="sy0">,</span><span class="st_h">'touch'</span><span class="sy0">,</span><span class="st_h">'trigger_error'</span><span class="sy0">,</span></span></span> <span class="st_h">'transliterate'</span><span class="sy0">,</span><span class="st_h">'transliterate_filters_get'</span><span class="sy0">,</span><span class="st_h">'trim'</span><span class="sy0">,</span><span class="st_h">'uasort'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ucfirst'</span><span class="sy0">,</span><span class="st_h">'ucwords'</span><span class="sy0">,</span><span class="st_h">'uksort'</span><span class="sy0">,</span><span class="st_h">'umask'</span><span class="sy0">,</span><span class="st_h">'uniqid'</span><span class="sy0">,</span><span class="st_h">'unixtojd'</span><span class="sy0">,</span><span class="st_h">'unlink'</span><span class="sy0">,</span></span></span> <span class="st_h">'unpack'</span><span class="sy0">,</span><span class="st_h">'unregister_tick_function'</span><span class="sy0">,</span><span class="st_h">'unserialize'</span><span class="sy0">,</span><span class="st_h">'unset'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'urldecode'</span><span class="sy0">,</span><span class="st_h">'urlencode'</span><span class="sy0">,</span><span class="st_h">'user_error'</span><span class="sy0">,</span><span class="st_h">'use_soap_error_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'usleep'</span><span class="sy0">,</span><span class="st_h">'usort'</span><span class="sy0">,</span><span class="st_h">'utf8_decode'</span><span class="sy0">,</span><span class="st_h">'utf8_encode'</span><span class="sy0">,</span><span class="st_h">'var_dump'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'var_export'</span><span class="sy0">,</span><span class="st_h">'variant_abs'</span><span class="sy0">,</span><span class="st_h">'variant_add'</span><span class="sy0">,</span><span class="st_h">'variant_and'</span><span class="sy0">,</span></span></span> <span class="st_h">'variant_cast'</span><span class="sy0">,</span><span class="st_h">'variant_cat'</span><span class="sy0">,</span><span class="st_h">'variant_cmp'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'variant_date_from_timestamp'</span><span class="sy0">,</span><span class="st_h">'variant_date_to_timestamp'</span><span class="sy0">,</span></span></span> <span class="st_h">'variant_div'</span><span class="sy0">,</span><span class="st_h">'variant_eqv'</span><span class="sy0">,</span><span class="st_h">'variant_fix'</span><span class="sy0">,</span><span class="st_h">'variant_get_type'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'variant_idiv'</span><span class="sy0">,</span><span class="st_h">'variant_imp'</span><span class="sy0">,</span><span class="st_h">'variant_int'</span><span class="sy0">,</span><span class="st_h">'variant_mod'</span><span class="sy0">,</span></span></span> <span class="st_h">'variant_mul'</span><span class="sy0">,</span><span class="st_h">'variant_neg'</span><span class="sy0">,</span><span class="st_h">'variant_not'</span><span class="sy0">,</span><span class="st_h">'variant_or'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'variant_pow'</span><span class="sy0">,</span><span class="st_h">'variant_round'</span><span class="sy0">,</span><span class="st_h">'variant_set'</span><span class="sy0">,</span><span class="st_h">'variant_set_type'</span><span class="sy0">,</span></span></span> <span class="st_h">'variant_sub'</span><span class="sy0">,</span><span class="st_h">'variant_xor'</span><span class="sy0">,</span><span class="st_h">'version_compare'</span><span class="sy0">,</span><span class="st_h">'virtual'</span><span class="sy0">,</span><span class="st_h">'vfprintf'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'vprintf'</span><span class="sy0">,</span><span class="st_h">'vsprintf'</span><span class="sy0">,</span><span class="st_h">'wddx_add_vars'</span><span class="sy0">,</span><span class="st_h">'wddx_deserialize'</span><span class="sy0">,</span></span></span> <span class="st_h">'wddx_packet_end'</span><span class="sy0">,</span><span class="st_h">'wddx_packet_start'</span><span class="sy0">,</span><span class="st_h">'wddx_serialize_value'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'wddx_serialize_vars'</span><span class="sy0">,</span><span class="st_h">'win_beep'</span><span class="sy0">,</span><span class="st_h">'win_browse_file'</span><span class="sy0">,</span></span></span> <span class="st_h">'win_browse_folder'</span><span class="sy0">,</span><span class="st_h">'win_create_link'</span><span class="sy0">,</span><span class="st_h">'win_message_box'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'win_play_wav'</span><span class="sy0">,</span><span class="st_h">'win_shell_execute'</span><span class="sy0">,</span><span class="st_h">'win32_create_service'</span><span class="sy0">,</span></span></span> <span class="st_h">'win32_delete_service'</span><span class="sy0">,</span><span class="st_h">'win32_get_last_control_message'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'win32_ps_list_procs'</span><span class="sy0">,</span><span class="st_h">'win32_ps_stat_mem'</span><span class="sy0">,</span><span class="st_h">'win32_ps_stat_proc'</span><span class="sy0">,</span></span></span> <span class="st_h">'win32_query_service_status'</span><span class="sy0">,</span><span class="st_h">'win32_scheduler_delete_task'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'win32_scheduler_enum_tasks'</span><span class="sy0">,</span><span class="st_h">'win32_scheduler_get_task_info'</span><span class="sy0">,</span></span></span> <span class="st_h">'win32_scheduler_run'</span><span class="sy0">,</span><span class="st_h">'win32_scheduler_set_task_info'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'win32_set_service_status'</span><span class="sy0">,</span><span class="st_h">'win32_start_service'</span><span class="sy0">,</span></span></span> <span class="st_h">'win32_start_service_ctrl_dispatcher'</span><span class="sy0">,</span><span class="st_h">'win32_stop_service'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'wordwrap'</span><span class="sy0">,</span><span class="st_h">'xml_error_string'</span><span class="sy0">,</span><span class="st_h">'xml_get_current_byte_index'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_get_current_column_number'</span><span class="sy0">,</span><span class="st_h">'xml_get_current_line_number'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_get_error_code'</span><span class="sy0">,</span><span class="st_h">'xml_parse'</span><span class="sy0">,</span><span class="st_h">'xml_parser_create'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_parser_create_ns'</span><span class="sy0">,</span><span class="st_h">'xml_parser_free'</span><span class="sy0">,</span><span class="st_h">'xml_parser_get_option'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_parser_set_option'</span><span class="sy0">,</span><span class="st_h">'xml_parse_into_struct'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_character_data_handler'</span><span class="sy0">,</span><span class="st_h">'xml_set_default_handler'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_set_element_handler'</span><span class="sy0">,</span><span class="st_h">'xml_set_end_namespace_decl_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_external_entity_ref_handler'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_set_notation_decl_handler'</span><span class="sy0">,</span><span class="st_h">'xml_set_object'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_processing_instruction_handler'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_set_start_namespace_decl_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_unparsed_entity_decl_handler'</span><span class="sy0">,</span><span class="st_h">'xmldoc'</span><span class="sy0">,</span><span class="st_h">'xmldocfile'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlrpc_decode'</span><span class="sy0">,</span><span class="st_h">'xmlrpc_decode_request'</span><span class="sy0">,</span><span class="st_h">'xmlrpc_encode'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlrpc_encode_request'</span><span class="sy0">,</span><span class="st_h">'xmlrpc_get_type'</span><span class="sy0">,</span><span class="st_h">'xmlrpc_is_fault'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlrpc_parse_method_descriptions'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlrpc_server_add_introspection_data'</span><span class="sy0">,</span><span class="st_h">'xmlrpc_server_call_method'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlrpc_server_create'</span><span class="sy0">,</span><span class="st_h">'xmlrpc_server_destroy'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlrpc_server_register_introspection_callback'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlrpc_server_register_method'</span><span class="sy0">,</span><span class="st_h">'xmlrpc_set_type'</span><span class="sy0">,</span><span class="st_h">'xmltree'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_end_attribute'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_end_cdata'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_end_comment'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_end_document'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_end_dtd'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_end_dtd_attlist'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_end_dtd_element'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_end_dtd_entity'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_end_element'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_end_pi'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_flush'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_full_end_element'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_open_memory'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_open_uri'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_output_memory'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_set_indent'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_set_indent_string'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_start_attribute'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_start_attribute_ns'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_start_cdata'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_start_comment'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_start_document'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_start_dtd'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_start_dtd_attlist'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_start_dtd_element'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_start_dtd_entity'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_start_element'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_start_element_ns'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_start_pi'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_text'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_write_attribute'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_write_attribute_ns'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_write_cdata'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_write_comment'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_write_dtd'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_write_dtd_attlist'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_write_dtd_element'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_write_dtd_entity'</span><span class="sy0">,</span></span></span> <span class="st_h">'xmlwriter_write_element'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_write_element_ns'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xmlwriter_write_pi'</span><span class="sy0">,</span><span class="st_h">'xmlwriter_write_raw'</span><span class="sy0">,</span><span class="st_h">'xpath_eval'</span><span class="sy0">,</span></span></span> <span class="st_h">'xpath_eval_expression'</span><span class="sy0">,</span><span class="st_h">'xpath_new_context'</span><span class="sy0">,</span><span class="st_h">'xpath_register_ns'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xpath_register_ns_auto'</span><span class="sy0">,</span><span class="st_h">'xptr_eval'</span><span class="sy0">,</span><span class="st_h">'xptr_new_context'</span><span class="sy0">,</span><span class="st_h">'yp_all'</span><span class="sy0">,</span></span></span> <span class="st_h">'yp_cat'</span><span class="sy0">,</span><span class="st_h">'yp_errno'</span><span class="sy0">,</span><span class="st_h">'yp_err_string'</span><span class="sy0">,</span><span class="st_h">'yp_first'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'yp_get_default_domain'</span><span class="sy0">,</span><span class="st_h">'yp_master'</span><span class="sy0">,</span><span class="st_h">'yp_match'</span><span class="sy0">,</span><span class="st_h">'yp_next'</span><span class="sy0">,</span><span class="st_h">'yp_order'</span><span class="sy0">,</span></span></span> <span class="st_h">'zend_current_obfuscation_level'</span><span class="sy0">,</span><span class="st_h">'zend_get_cfg_var'</span><span class="sy0">,</span><span class="st_h">'zend_get_id'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'zend_loader_current_file'</span><span class="sy0">,</span><span class="st_h">'zend_loader_enabled'</span><span class="sy0">,</span></span></span> <span class="st_h">'zend_loader_file_encoded'</span><span class="sy0">,</span><span class="st_h">'zend_loader_file_licensed'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'zend_loader_install_license'</span><span class="sy0">,</span><span class="st_h">'zend_loader_version'</span><span class="sy0">,</span></span></span> <span class="st_h">'zend_logo_guid'</span><span class="sy0">,</span><span class="st_h">'zend_match_hostmasks'</span><span class="sy0">,</span><span class="st_h">'zend_obfuscate_class_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'zend_obfuscate_function_name'</span><span class="sy0">,</span><span class="st_h">'zend_optimizer_version'</span><span class="sy0">,</span></span></span> <span class="st_h">'zend_runtime_obfuscate'</span><span class="sy0">,</span><span class="st_h">'zend_version'</span><span class="sy0">,</span><span class="st_h">'zip_close'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'zip_entry_close'</span><span class="sy0">,</span><span class="st_h">'zip_entry_compressedsize'</span><span class="sy0">,</span></span></span> <span class="st_h">'zip_entry_compressionmethod'</span><span class="sy0">,</span><span class="st_h">'zip_entry_filesize'</span><span class="sy0">,</span><span class="st_h">'zip_entry_name'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'zip_entry_open'</span><span class="sy0">,</span><span class="st_h">'zip_entry_read'</span><span class="sy0">,</span><span class="st_h">'zip_open'</span><span class="sy0">,</span><span class="st_h">'zip_read'</span><span class="sy0">,</span></span></span> <span class="st_h">'zlib_get_coding_type'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'DEFAULT_INCLUDE_PATH'</span><span class="sy0">,</span> <span class="st_h">'DIRECTORY_SEPARATOR'</span><span class="sy0">,</span> <span class="st_h">'E_ALL'</span><span class="sy0">,</span></span></span> <span class="st_h">'E_COMPILE_ERROR'</span><span class="sy0">,</span> <span class="st_h">'E_COMPILE_WARNING'</span><span class="sy0">,</span> <span class="st_h">'E_CORE_ERROR'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'E_CORE_WARNING'</span><span class="sy0">,</span> <span class="st_h">'E_ERROR'</span><span class="sy0">,</span> <span class="st_h">'E_NOTICE'</span><span class="sy0">,</span> <span class="st_h">'E_PARSE'</span><span class="sy0">,</span> <span class="st_h">'E_STRICT'</span><span class="sy0">,</span></span></span> <span class="st_h">'E_USER_ERROR'</span><span class="sy0">,</span> <span class="st_h">'E_USER_NOTICE'</span><span class="sy0">,</span> <span class="st_h">'E_USER_WARNING'</span><span class="sy0">,</span> <span class="st_h">'E_WARNING'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ENT_COMPAT'</span><span class="sy0">,</span><span class="st_h">'ENT_QUOTES'</span><span class="sy0">,</span><span class="st_h">'ENT_NOQUOTES'</span><span class="sy0">,</span></span></span> <span class="st_h">'false'</span><span class="sy0">,</span> <span class="st_h">'null'</span><span class="sy0">,</span> <span class="st_h">'PEAR_EXTENSION_DIR'</span><span class="sy0">,</span> <span class="st_h">'PEAR_INSTALL_DIR'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'PHP_BINDIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_CONFIG_FILE_PATH'</span><span class="sy0">,</span> <span class="st_h">'PHP_DATADIR'</span><span class="sy0">,</span></span></span> <span class="st_h">'PHP_EXTENSION_DIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_LIBDIR'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'PHP_LOCALSTATEDIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_OS'</span><span class="sy0">,</span></span></span> <span class="st_h">'PHP_OUTPUT_HANDLER_CONT'</span><span class="sy0">,</span> <span class="st_h">'PHP_OUTPUT_HANDLER_END'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'PHP_OUTPUT_HANDLER_START'</span><span class="sy0">,</span> <span class="st_h">'PHP_SYSCONFDIR'</span><span class="sy0">,</span></span></span> <span class="st_h">'PHP_VERSION'</span><span class="sy0">,</span> <span class="st_h">'true'</span><span class="sy0">,</span> <span class="st_h">'__CLASS__'</span><span class="sy0">,</span> <span class="st_h">'__FILE__'</span><span class="sy0">,</span> <span class="st_h">'__FUNCTION__'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'__LINE__'</span><span class="sy0">,</span> <span class="st_h">'__METHOD__'</span></span></span> <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'SYMBOLS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'<%'</span><span class="sy0">,</span> <span class="st_h">'<%='</span><span class="sy0">,</span> <span class="st_h">'%>'</span><span class="sy0">,</span> <span class="st_h">'<?'</span><span class="sy0">,</span> <span class="st_h">'<?='</span><span class="sy0">,</span> <span class="st_h">'?>'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'('</span><span class="sy0">,</span> <span class="st_h">')'</span><span class="sy0">,</span> <span class="st_h">'['</span><span class="sy0">,</span> <span class="st_h">']'</span><span class="sy0">,</span> <span class="st_h">'{'</span><span class="sy0">,</span> <span class="st_h">'}'</span><span class="sy0">,</span></span></span> <span class="st_h">'!'</span><span class="sy0">,</span> <span class="st_h">'@'</span><span class="sy0">,</span> <span class="st_h">'%'</span><span class="sy0">,</span> <span class="st_h">'&'</span><span class="sy0">,</span> <span class="st_h">'|'</span><span class="sy0">,</span> <span class="st_h">'/'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'<'</span><span class="sy0">,</span> <span class="st_h">'>'</span><span class="sy0">,</span></span></span> <span class="st_h">'='</span><span class="sy0">,</span> <span class="st_h">'-'</span><span class="sy0">,</span> <span class="st_h">'+'</span><span class="sy0">,</span> <span class="st_h">'*'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'.'</span><span class="sy0">,</span> <span class="st_h">':'</span><span class="sy0">,</span> <span class="st_h">','</span><span class="sy0">,</span> <span class="st_h">';'</span></span></span> <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'CASE_SENSITIVE'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> GESHI_COMMENTS <span class="sy0">=></span> <span class="kw4">false</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="kw4">false</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <span class="kw4">false</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <span class="kw4">false</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">4</span> <span class="sy0">=></span> <span class="kw4">false</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'STYLES'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'KEYWORDS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'color: #b1b100;'</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'color: #000000; font-weight: bold;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">'color: #990000;'</span><span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st_h">'color: #009900; font-weight: bold;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'COMMENTS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'color: #666666; font-style: italic;'</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'color: #666666; font-style: italic;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">'color: #0000cc; font-style: italic;'</span><span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st_h">'color: #009933; font-style: italic;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'MULTI'</span> <span class="sy0">=></span> <span class="st_h">'color: #666666; font-style: italic;'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ESCAPE_CHAR'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #000099; font-weight: bold;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'color: #000099; font-weight: bold;'</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'color: #660099; font-weight: bold;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">'color: #660099; font-weight: bold;'</span><span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st_h">'color: #006699; font-weight: bold;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">5</span> <span class="sy0">=></span> <span class="st_h">'color: #006699; font-weight: bold; font-style: italic;'</span><span class="sy0">,</span></span></span> <span class="nu0">6</span> <span class="sy0">=></span> <span class="st_h">'color: #009933; font-weight: bold;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'HARD'</span> <span class="sy0">=></span> <span class="st_h">'color: #000099; font-weight: bold;'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'BRACKETS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #009900;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'STRINGS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #0000ff;'</span><span class="sy0">,</span></span></span> <span class="st_h">'HARD'</span> <span class="sy0">=></span> <span class="st_h">'color: #0000ff;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'NUMBERS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #cc66cc;'</span><span class="sy0">,</span></span></span> GESHI_NUMBER_OCT_PREFIX <span class="sy0">=></span> <span class="st_h">'color: #208080;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> GESHI_NUMBER_HEX_PREFIX <span class="sy0">=></span> <span class="st_h">'color: #208080;'</span><span class="sy0">,</span></span></span> GESHI_NUMBER_FLT_SCI_ZERO <span class="sy0">=></span> <span class="st_h">'color:#800080;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'METHODS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'color: #004000;'</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'color: #004000;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'SYMBOLS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #339933;'</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'color: #000000; font-weight: bold;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'REGEXPS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #000088;'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'SCRIPT'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">5</span> <span class="sy0">=></span> <span class="st_h">''</span></span></span> <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'URLS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">'http://www.php.net/{FNAMEL}'</span><span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st_h">''</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'OOLANG'</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'OBJECT_SPLITTERS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'-&gt;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'::'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'REGEXPS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="co1">//Variables</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st0">"[<span class="es1">\\</span>$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'STRICT_MODE_APPLIES'</span> <span class="sy0">=></span> GESHI_MAYBE<span class="sy0">,</span></span></span> <span class="st_h">'SCRIPT_DELIMITERS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'<?php'</span> <span class="sy0">=></span> <span class="st_h">'?>'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'<?'</span> <span class="sy0">=></span> <span class="st_h">'?>'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'<%'</span> <span class="sy0">=></span> <span class="st_h">'%>'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'<script language="php">'</span> <span class="sy0">=></span> <span class="st_h">'</script>'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st0">"/(<\?(?:php)?)(?:'(?:[^'<span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?'|<span class="es1">\"</span>(?:[^<span class="es1">\"</span><span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?<span class="es1">\"</span>|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm"</span><span class="sy0">,</span></span></span> <span class="nu0">5</span> <span class="sy0">=></span> <span class="st0">"/(<%)(?:'(?:[^'<span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?'|<span class="es1">\"</span>(?:[^<span class="es1">\"</span><span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?<span class="es1">\"</span>|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm"</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'HIGHLIGHT_STRICT_BLOCK'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">4</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span></span></span> <span class="nu0">5</span> <span class="sy0">=></span> <span class="kw4">true</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'TAB_WIDTH'</span> <span class="sy0">=></span> <span class="nu0">4</span> |
| <span class="xtra li2"><span class="de2"><span class="br0">)</span><span class="sy0">;</span></span></span> |
| <span class="xtra li2"><span class="de2"><span class="sy1">?></span></span></span></pre></td></tr></tbody></table> |
| |
| <p>If you’re remotely familiar with <abbr title="PHP: HTML Preprocessor">PHP</abbr> (or even if you’re not), you can see that all that a language file consists of is |
| a glorified variable assignment. Easy! All a language file does is assign a variable <code class="highlighted php"><span class="re0">$language_data</span></code>. Though |
| still, there’s a lot of indices to that array… but this section is here to break each index down and explain it to you.</p> |
| |
| <h3 id="language-file-conventions">4.2 Language File Conventions</h3><div class="nav"><a href="#language-file-example">Previous</a> | <a href="#language-files">Top</a> | <a href="#language-file-sections">Next</a></div> |
| |
| <p>There are several conventions that are used in language files. For ease of use and readability, your language |
| files should obey the following rules:</p> |
| |
| <ul> |
| <li><strong>Indentation is <em>4 spaces</em>, not tabs:</strong> Use spaces! as editors continiously screw up tabs there should be |
| no tabs in your documents since it would look differently on every computer otherwise.</li> |
| <li><strong>Strings are in single quotes:</strong> Every string in a language file should be in single quotes (‘), unless you are |
| specifying a single quote as a quotemark or escape character, in which case they can be in double quotes for |
| readability; or if you are specifying a REGEXP (see below). This ensures that the language file can be loaded |
| as fast as possible by <abbr title="PHP: HTML Preprocessor">PHP</abbr> as unnecessary parsing can be avoided.</li> |
| <li><strong>Large arrays are multi-lined:</strong> An array with more than three or four values should be broken into multiple |
| lines. In any case, lines should not be wider than a full-screen window (about 100 chars per line max). |
| Don’t break the keywords arrays after every keyword.</li> |
| <li><strong>Ending brackets for multi-lined arrays on a new line:</strong> Also with a comma after them, unless the array is |
| the last one in a parent array. See the <abbr title="PHP: HTML Preprocessor">PHP</abbr> language file for examples of where to use commas.</li> |
| <li><strong>Use <abbr title="Generic Syntax Highlighter">GeSHi</abbr>’s constants:</strong> For capatalisation, regular expressions etc. use the <abbr title="Generic Syntax Highlighter">GeSHi</abbr> constants, <em>not</em> |
| their actual values.</li> |
| <li><strong>Verbatim header format:</strong> Copy the file header verbatim from other language files and modify the values |
| afterwards. Don’t try to invent own header formats, as your languages else will fail validation!</li> |
| </ul> |
| |
| <p>There are more notes on each convention where it may appear in the language file sections below.</p> |
| |
| <h3 id="language-file-sections">4.3 Language File Sections</h3><div class="nav"><a href="#language-file-conventions">Previous</a> | <a href="#language-files">Top</a> | <a href="#language-file-header">Next</a></div> |
| |
| <p>This section will look at all the sections of a language file, and how they relate to the final highlighting result.</p> |
| |
| <h4 id="language-file-header">4.3.1 The Header</h4><div class="nav"><a href="#language-file-sections">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-start-indices">Next</a></div> |
| |
| <p>The <em>header</em> of a language file is the first lines with the big comment and the start of the variable |
| <code class="highlighted php"><span class="re0">$language_data</span></code>:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| <span class="xtra li2"><span class="de2">22</span></span>23 |
| <span class="xtra li2"><span class="de2">24</span></span>25 |
| <span class="xtra li2"><span class="de2">26</span></span>27 |
| <span class="xtra li2"><span class="de2">28</span></span>29 |
| <span class="xtra li2"><span class="de2">30</span></span>31 |
| <span class="xtra li2"><span class="de2">32</span></span>33 |
| <span class="xtra li2"><span class="de2">34</span></span>35 |
| <span class="xtra li2"><span class="de2">36</span></span>37 |
| <span class="xtra li2"><span class="de2">38</span></span>39 |
| <span class="xtra li2"><span class="de2">40</span></span>41 |
| <span class="xtra li2"><span class="de2">42</span></span>43 |
| </pre></td><td class="de1"><pre class="de1"><span class="kw2"><?php</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI">/*************************************************************************************</span></span></span><span class="coMULTI"> * <name-of-language-file.php></span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * ---------------------------------</span></span></span><span class="coMULTI"> * Author: <name> (<e-mail address>)</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * Copyright: (c) 2008 <name> (<website URL>)</span></span></span><span class="coMULTI"> * Release Version: <GeSHi release></span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * Date Started: <date started></span></span></span><span class="coMULTI"> *</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * <name-of-language> language file for GeSHi.</span></span></span><span class="coMULTI"> *</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * <any-comments...></span></span></span><span class="coMULTI"> *</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * CHANGES</span></span></span><span class="coMULTI"> * -------</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * <date-of-release> (<GeSHi release>)</span></span></span><span class="coMULTI"> * - First Release</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * TODO (updated <date-of-release>)</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * -------------------------</span></span></span><span class="coMULTI"> * <things-to-do></span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> *************************************************************************************</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * This file is part of GeSHi.</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * GeSHi is free software; you can redistribute it and/or modify</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * it under the terms of the GNU General Public License as published by</span></span></span><span class="coMULTI"> * the Free Software Foundation; either version 2 of the License, or</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * (at your option) any later version.</span></span></span><span class="coMULTI"> *</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * GeSHi is distributed in the hope that it will be useful,</span></span></span><span class="coMULTI"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></span></span><span class="coMULTI"> * GNU General Public License for more details.</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> * You should have received a copy of the GNU General Public License</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> * along with GeSHi; if not, write to the Free Software</span></span></span><span class="coMULTI"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span> |
| <span class="xtra li2"><span class="de2"><span class="coMULTI"> *</span></span></span><span class="coMULTI"> ************************************************************************************/</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="re0">$language_data</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a> <span class="br0">(</span></pre></td></tr></tbody></table> |
| |
| <p>The parts in angle brackets are the parts that you change for your language file. <strong>Everything else <em>must</em> remain the same!</strong></p> |
| |
| <p>Here are the parts you should change:</p> |
| |
| <ul> |
| <li><code><name-of-language-file.php></code> - This should become the name of your language file. Language file names are in |
| lower case and contain only alphanumeric characters, dashes and underscores. Language files end with .php (which |
| you should put with the name of your language file, eg language.php)</li> |
| <li><code><name></code> - Your name, or alias.</li> |
| <li><code><e-mail address></code> - Your e-mail address. If you want your language file included with <abbr title="Generic Syntax Highlighter">GeSHi</abbr> you <em>must</em> |
| include an e-mail address that refers to an inbox controlled by you.</li> |
| <li><code><website></code> - A URL of a website of yours (perhaps to a page that deals with your contribution to <abbr title="Generic Syntax Highlighter">GeSHi</abbr>, or |
| your home page/blog)</li> |
| <li><code><date-started></code> - The date you started working on the language file. If you can’t remember, guestimate.</li> |
| <li><code><name-of-language></code> - The name of the language you made this language file for (probably similar to |
| the language file name).</li> |
| <li><code><any-comments></code> - Any comments you have to make about this language file, perhaps on where you got the keywords for, |
| what dialect of the language this language file is for etc etc. If you don’t have any comments, remove the space for them.</li> |
| <li><code><date-of-release</code> - The date you released the language file to the public. If you simply send it to me for inclusion |
| in a new <abbr title="Generic Syntax Highlighter">GeSHi</abbr> and don’t release it, leave this blank, and I’ll replace it with the date of the <abbr title="Generic Syntax Highlighter">GeSHi</abbr> release that |
| it is first added to.</li> |
| <li><code><GeSHi release></code> - This is the version of the release that will contain the changes you made. |
| So if you have version 1.0.8 of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> running this will be the next version to be released, e.g. 1.0.8.1.</li> |
| </ul> |
| |
| <p>Everything should remain the same.</p> |
| |
| <p><strong>Also:</strong> I’m not sure about the copyright on a new language file. I’m not a lawyer, could someone contact me about |
| whether the copyright for a new language file should be exclusivly the authors, or joint with me (if included in a |
| <abbr title="Generic Syntax Highlighter">GeSHi</abbr> release)?</p> |
| |
| <h4 id="language-file-start-indices">4.3.2 The First Indices</h4><div class="nav"><a href="#language-file-header">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-keywords">Next</a></div> |
| |
| <p>Here is an example from the php language file of the first indices:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span></pre></td><td class="de1"><pre class="de1"><span class="st_h">'LANG_NAME'</span> <span class="sy0">=></span> <span class="st_h">'PHP'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h">'COMMENT_SINGLE'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'//'</span><span class="sy0">,</span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'#'</span><span class="br0">)</span><span class="sy0">,</span></span></span><span class="st_h">'COMMENT_MULTI'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'/*'</span> <span class="sy0">=></span> <span class="st_h">'*/'</span><span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h">'CASE_KEYWORDS'</span> <span class="sy0">=></span> GESHI_CAPS_NO_CHANGE<span class="sy0">,</span></span></span><span class="st_h">'QUOTEMARKS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st0">"'"</span><span class="sy0">,</span> <span class="st_h">'"'</span><span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h">'ESCAPE_CHAR'</span> <span class="sy0">=></span> <span class="st_h">'\\'</span><span class="sy0">,</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>The first indices are the first few lines of a language file before the KEYWORDS index. These indices specify:</p> |
| |
| <ul> |
| <li><strong>‘LANG_NAME’</strong>: The name of the language. This name should be a human-readable version of the name |
| (e.g. <abbr title="Hypertext Markup Language">HTML</abbr> 4 (transitional) instead of html4trans)</li> |
| <li><strong>‘COMMENT_SINGLE’:</strong> An array of single-line comments in your language, indexed by integers starting |
| from 1. A single line comment is a comment that starts at the marker and goes until the end of the line. These |
| comments may be any length > 0, and since they can be styled individually, can be used for other things than comments |
| (for example the Java language file defines “import” as a single line comment). If you are making a language that |
| uses a ’ (apostrophe) as a comment (or in the comment marker somewhere), use double quotes. e.g.: “’”</li> |
| <li><strong>‘COMMENT_MULTI’:</strong> Used to specify multiline comments, an array in the form ‘OPEN’ => ‘CLOSE’. Unfortunately, |
| all of these comments you add here will be styled the same way (an area of improvement for <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.2.X). |
| These comment markers may be any length > 0.</li> |
| <li><strong>‘CASE_KEYWORDS’:</strong> Used to set whether the case of keywords should be changed automatically as they are found. |
| For example, in an SQL or BASIC dialect you may want all keywords to be upper case. The accepted values for this are:</li> |
| <li><code>GESHI_CAPS_UPPER</code>: Convert the case of all keywords to upper case.</li> |
| <li><code>GESHI_CAPS_LOWER</code>: Convert the case of all keywords to lower case.</li> |
| <li><code>GESHI_CAPS_NO_CHANGE</code>: Don’t change the case of any keyword.</li> |
| <li><strong>‘QUOTEMARKS’:</strong> Specifies the characters that mark the beginning and end of a string. This is another example |
| where if your language includes the ’ string delimiter you should use double quotes around it.</li> |
| <li><strong>‘ESCAPE_CHAR’:</strong> Specifies the escape character used in all strings. If your language does not have an escape |
| character then make this the empty string (<code>''</code>). This is not an array! If found, any character after an |
| escape character and the escape character itself will be highlighted differently, and the character after the |
| escape character cannot end a string.</li> |
| </ul> |
| |
| <p>In some language files you might see here other indices too, but those are dealt with later on.</p> |
| |
| <h4 id="language-file-keywords">4.3.3 Keywords</h4><div class="nav"><a href="#language-file-start-indices">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-symbols-case">Next</a></div> |
| |
| <p>Keywords will make up the bulk of a language file. In this part you add keywords for your language, including |
| inbuilt functions, data types, predefined constants etc etc.</p> |
| |
| <p>Here’s a (shortened) example from the php language file:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| <span class="xtra li2"><span class="de2">22</span></span>23 |
| <span class="xtra li2"><span class="de2">24</span></span>25 |
| <span class="xtra li2"><span class="de2">26</span></span>27 |
| <span class="xtra li2"><span class="de2">28</span></span>29 |
| <span class="xtra li2"><span class="de2">30</span></span>31 |
| <span class="xtra li2"><span class="de2">32</span></span>33 |
| <span class="xtra li2"><span class="de2">34</span></span>35 |
| <span class="xtra li2"><span class="de2">36</span></span>37 |
| <span class="xtra li2"><span class="de2">38</span></span>39 |
| <span class="xtra li2"><span class="de2">40</span></span></pre></td><td class="de1"><pre class="de1"><span class="st_h">'KEYWORDS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'as'</span><span class="sy0">,</span> <span class="st_h">'break'</span><span class="sy0">,</span> <span class="st_h">'case'</span><span class="sy0">,</span> <span class="st_h">'do'</span><span class="sy0">,</span> <span class="st_h">'else'</span><span class="sy0">,</span> <span class="st_h">'elseif'</span><span class="sy0">,</span> <span class="st_h">'endif'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'endswitch'</span><span class="sy0">,</span> <span class="st_h">'endwhile'</span><span class="sy0">,</span> <span class="st_h">'for'</span><span class="sy0">,</span> <span class="st_h">'foreach'</span><span class="sy0">,</span> <span class="st_h">'if'</span><span class="sy0">,</span> <span class="st_h">'include'</span><span class="sy0">,</span></span></span> <span class="st_h">'include_once'</span><span class="sy0">,</span> <span class="st_h">'require'</span><span class="sy0">,</span> <span class="st_h">'require_once'</span><span class="sy0">,</span> <span class="st_h">'return'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'switch'</span><span class="sy0">,</span> <span class="st_h">'while'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'&lt;/script>'</span><span class="sy0">,</span> <span class="st_h">'&lt;?'</span><span class="sy0">,</span> <span class="st_h">'&lt;?php'</span><span class="sy0">,</span> <span class="st_h">'&lt;script language='</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'?>'</span><span class="sy0">,</span> <span class="st_h">'class'</span><span class="sy0">,</span> <span class="st_h">'default'</span><span class="sy0">,</span> <span class="st_h">'DEFAULT_INCLUDE_PATH'</span><span class="sy0">,</span> <span class="st_h">'E_ALL'</span><span class="sy0">,</span></span></span> <span class="st_h">'E_COMPILE_ERROR'</span><span class="sy0">,</span> <span class="st_h">'E_COMPILE_WARNING'</span><span class="sy0">,</span> <span class="st_h">'E_CORE_ERROR'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'E_CORE_WARNING'</span><span class="sy0">,</span> <span class="st_h">'E_ERROR'</span><span class="sy0">,</span> <span class="st_h">'E_NOTICE'</span><span class="sy0">,</span> <span class="st_h">'E_PARSE'</span><span class="sy0">,</span></span></span> <span class="st_h">'E_USER_ERROR'</span><span class="sy0">,</span> <span class="st_h">'E_USER_NOTICE'</span><span class="sy0">,</span> <span class="st_h">'E_USER_WARNING'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'E_WARNING'</span><span class="sy0">,</span> <span class="st_h">'false'</span><span class="sy0">,</span> <span class="st_h">'function'</span><span class="sy0">,</span> <span class="st_h">'new'</span><span class="sy0">,</span> <span class="st_h">'null'</span><span class="sy0">,</span></span></span> <span class="st_h">'PEAR_EXTENSION_DIR'</span><span class="sy0">,</span> <span class="st_h">'PEAR_INSTALL_DIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_BINDIR'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'PHP_CONFIG_FILE_PATH'</span><span class="sy0">,</span> <span class="st_h">'PHP_DATADIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_EXTENSION_DIR'</span><span class="sy0">,</span></span></span> <span class="st_h">'PHP_LIBDIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_LOCALSTATEDIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_OS'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'PHP_OUTPUT_HANDLER_CONT'</span><span class="sy0">,</span> <span class="st_h">'PHP_OUTPUT_HANDLER_END'</span><span class="sy0">,</span></span></span> <span class="st_h">'PHP_OUTPUT_HANDLER_START'</span><span class="sy0">,</span> <span class="st_h">'PHP_SYSCONFDIR'</span><span class="sy0">,</span> <span class="st_h">'PHP_VERSION'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'true'</span><span class="sy0">,</span> <span class="st_h">'var'</span><span class="sy0">,</span> <span class="st_h">'__CLASS__'</span><span class="sy0">,</span> <span class="st_h">'__FILE__'</span><span class="sy0">,</span> <span class="st_h">'__FUNCTION__'</span><span class="sy0">,</span></span></span> <span class="st_h">'__LINE__'</span><span class="sy0">,</span> <span class="st_h">'__METHOD__'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_parser_create'</span><span class="sy0">,</span> <span class="st_h">'xml_parser_create_ns'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_parser_free'</span><span class="sy0">,</span> <span class="st_h">'xml_parser_get_option'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_parser_set_option'</span><span class="sy0">,</span> <span class="st_h">'xml_parse_into_struct'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_character_data_handler'</span><span class="sy0">,</span> <span class="st_h">'xml_set_default_handler'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_set_element_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_end_namespace_decl_handler'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_set_external_entity_ref_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_notation_decl_handler'</span><span class="sy0">,</span> <span class="st_h">'xml_set_object'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_set_processing_instruction_handler'</span><span class="sy0">,</span></span></span> <span class="st_h">'xml_set_start_namespace_decl_handler'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'xml_set_unparsed_entity_decl_handler'</span><span class="sy0">,</span> <span class="st_h">'yp_all'</span><span class="sy0">,</span> <span class="st_h">'yp_cat'</span><span class="sy0">,</span></span></span> <span class="st_h">'yp_errno'</span><span class="sy0">,</span> <span class="st_h">'yp_err_string'</span><span class="sy0">,</span> <span class="st_h">'yp_first'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'yp_get_default_domain'</span><span class="sy0">,</span> <span class="st_h">'yp_master'</span><span class="sy0">,</span> <span class="st_h">'yp_match'</span><span class="sy0">,</span> <span class="st_h">'yp_next'</span><span class="sy0">,</span></span></span> <span class="st_h">'yp_order'</span><span class="sy0">,</span> <span class="st_h">'zend_logo_guid'</span><span class="sy0">,</span> <span class="st_h">'zend_version'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'zlib_get_coding_type'</span></span></span> <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>You can see that the index ‘KEYWORDS’ refers to an array of arrays, indexed by positive integers. In each array, |
| there are some keywords (in the actual php language file there is in fact many more keywords in the array indexed by 3). |
| Here are some points to note about these keywords:</p> |
| |
| <ul> |
| <li><strong>Indexed by positive integers:</strong> Use nothing else! I may change this in 1.2.X, but for the 1.0.X series, |
| use positive integers only. Using strings here results in unnecessary overhead degrading performance when |
| highlighting code with your language file!</li> |
| <li><strong>Keywords sorted ascending:</strong> Keywords <em>should</em> be sorted in <em>ascending</em> order. This is mainly for |
| readability. An issue with versions before 1.0.8 has been solved, so the reverse sorting order |
| is no longer required and should thus be avoided. <abbr title="Generic Syntax Highlighter">GeSHi</abbr> itself sorts the keywords internally when |
| building some of its caches, so the order doesn’t matter, but makes things easier to read and maintain.</li> |
| <li><strong>Keywords are case sensitive (sometimes):</strong> If your language is case-sensitive, the correct casing of the |
| keywords is defined as the case of the keywords in these keyword arrays. If you check the java language file you |
| will see that everything is in exact casing. So if any of these keyword arrays are case sensitive, put the |
| keywords in as their correct case! (note that which groups are case sensitive and which are not is configurable, |
| see later on). If a keyword group is case insensitive, put the lowercase version of the keyword here |
| <strong>OR</strong> in case documentation links require a special casing (other than all lowercase or all uppercase) |
| the casing required for them use their casing.</li> |
| <li><strong>Keywords must be in <code class="highlighted php"><span class="kw3">htmlentities</span><span class="br0">(</span><span class="br0">)</span></code> form:</strong> All keywords should be written as if they had been |
| run through the php function <code class="highlighted php"><span class="kw3">htmlentities</span><span class="br0">(</span><span class="br0">)</span></code>. E.g, the keyword is <code class="highlighted html4strict"><span class="sc1">&lt;</span>foo<span class="sc1">&gt;</span></code>, not |
| <code class="highlighted html4strict"><span class="sc2"><foo></span></code></li> |
| <li><strong>Don’t use keywords to highlight symbols:</strong> Just don’t!!! It doesn’t work, and there is seperate support |
| for symbols since <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.7.21.</li> |
| <li><strong>Markup Languages are special cases:</strong> Check the html4strict language file for an example: You need to tweak |
| the Parser control here to tell the surroundings of tagnames. In case of doubt, feel free to ask.</li> |
| </ul> |
| |
| <h4 id="language-file-symbols-case">4.3.4 Symbols and Case Sensitivity</h4><div class="nav"><a href="#language-file-keywords">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-styles">Next</a></div> |
| |
| <p>So you’ve put all the keywords for your language in? Now for a breather before we style them :). Symbols define |
| what symbols your language uses. These are things like colons, brackets/braces, and other such general punctuation. |
| No alphanumeric stuff belongs here, just the same as no symbols belong into the keywords section.</p> |
| |
| <p>As of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> version 1.0.7.21 the symbols section can be used in two ways:</p> |
| |
| <dl> |
| <dt>Flat usage:</dt> |
| <dd>This mode is the suggested way for existing language files and languages that only need few symbols where no |
| further differentiation is needed or desired. You simply put all the characters in an array under symbols as shown |
| in the first example below. All symbols in flat usage belong to symbol style group 0.</dd> |
| |
| <dt>Group usage:</dt> |
| <dd>This is a slightly more enhanced way to provide <abbr title="Generic Syntax Highlighter">GeSHi</abbr> symbol information. To use group you create several subarrays |
| each containing only a subset of the symbols to highlight. Every array will need to have an unique index thus |
| you can assign the appropriate styles later.</dd> |
| </dl> |
| |
| <p>Here’s an example for flat symbol usage</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| </pre></td><td class="de1"><pre class="de1"><span class="st_h">'SYMBOLS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'('</span><span class="sy0">,</span> <span class="st_h">')'</span><span class="sy0">,</span> <span class="st_h">'['</span><span class="sy0">,</span> <span class="st_h">']'</span><span class="sy0">,</span> <span class="st_h">'{'</span><span class="sy0">,</span> <span class="st_h">'}'</span><span class="sy0">,</span> <span class="st_h">'!'</span><span class="sy0">,</span> <span class="st_h">'@'</span><span class="sy0">,</span> <span class="st_h">'|'</span><span class="sy0">,</span> <span class="st_h">'&'</span><span class="sy0">,</span> <span class="st_h">'+'</span><span class="sy0">,</span> <span class="st_h">'-'</span><span class="sy0">,</span> <span class="st_h">'*'</span><span class="sy0">,</span> <span class="st_h">'/'</span><span class="sy0">,</span> <span class="st_h">'%'</span><span class="sy0">,</span> <span class="st_h">'='</span><span class="sy0">,</span> <span class="st_h">'<'</span><span class="sy0">,</span> <span class="st_h">'>'</span></span></span><span class="br0">)</span><span class="sy0">,</span></pre></td></tr></tbody></table> |
| |
| <p>which is not too different from the newly introduced group usage shown below:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span></pre></td><td class="de1"><pre class="de1"><span class="st_h">'SYMBOLS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'('</span><span class="sy0">,</span> <span class="st_h">')'</span><span class="sy0">,</span> <span class="st_h">'['</span><span class="sy0">,</span> <span class="st_h">']'</span><span class="sy0">,</span> <span class="st_h">'{'</span><span class="sy0">,</span> <span class="st_h">'}'</span><span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'!'</span><span class="sy0">,</span> <span class="st_h">'@'</span><span class="sy0">,</span> <span class="st_h">'|'</span><span class="sy0">,</span> <span class="st_h">'&'</span><span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'+'</span><span class="sy0">,</span> <span class="st_h">'-'</span><span class="sy0">,</span> <span class="st_h">'*'</span><span class="sy0">,</span> <span class="st_h">'/'</span><span class="sy0">,</span> <span class="st_h">'%'</span><span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span><span class="st_h">'='</span><span class="sy0">,</span> <span class="st_h">'&lt;'</span><span class="sy0">,</span> <span class="st_h">'>'</span><span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"><span class="br0">)</span><span class="sy0">,</span></span></span></pre></td></tr></tbody></table> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>Please note that versions before 1.0.7.21 will silently ignore this setting.</p> |
| |
| <p>Also note that <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.7.21 itself had some bugs in Symbol highlighting that could cause |
| heavily scrambled code output.</p> |
| |
| </div> |
| |
| <p>The following case sensitivity group alludes to the keywords section: here you can set which keyword groups are case sensitive.</p> |
| |
| <p>In the <strong>‘CASE_SENSITIVE’</strong> group there’s a special key <code>GESHI_COMMENTS</code> which is used to set whether comments are |
| case sensitive or not (for example, BASIC has the REM statement which while not being case sensitive is still alphanumeric, and |
| as in the example given before about the Java language file using “import” as a single line comment, this can be |
| useful sometimes. <strong>true</strong> if comments are case sensitive, <strong>false</strong> otherwise. All of the other indices |
| correspond to indices in the <code>'KEYWORDS'</code> section (see above).</p> |
| |
| <h4 id="language-file-styles">4.3.5 Styles for your Language File</h4><div class="nav"><a href="#language-file-symbols-case">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-urls">Next</a></div> |
| |
| <p>This is the fun part! Here you get to choose the colours, fonts, backgrounds and anything else you’d like for your |
| language file.</p> |
| |
| <p>Here’s an example:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| <span class="xtra li2"><span class="de2">22</span></span>23 |
| <span class="xtra li2"><span class="de2">24</span></span>25 |
| <span class="xtra li2"><span class="de2">26</span></span>27 |
| <span class="xtra li2"><span class="de2">28</span></span>29 |
| <span class="xtra li2"><span class="de2">30</span></span>31 |
| <span class="xtra li2"><span class="de2">32</span></span>33 |
| <span class="xtra li2"><span class="de2">34</span></span>35 |
| <span class="xtra li2"><span class="de2">36</span></span>37 |
| <span class="xtra li2"><span class="de2">38</span></span>39 |
| </pre></td><td class="de1"><pre class="de1"><span class="st_h">'STYLES'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'KEYWORDS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'color: #b1b100;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'color: #000000; font-weight: bold;'</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">'color: #000066;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'COMMENTS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">'color: #808080; font-style: italic;'</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">'color: #808080; font-style: italic;'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'MULTI'</span> <span class="sy0">=></span> <span class="st_h">'color: #808080; font-style: italic;'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ESCAPE_CHAR'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #000099; font-weight: bold;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'BRACKETS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #66cc66;'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'STRINGS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #ff0000;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'NUMBERS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #cc66cc;'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'METHODS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #006600;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'SYMBOLS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #66cc66;'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'REGEXPS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">'color: #0000ff;'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="st_h">'SCRIPT'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">''</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span> <span class="br0">)</span><span class="sy0">,</span></pre></td></tr></tbody></table> |
| |
| <p>Note that all style rules should end with a semi-colon! This is important: <abbr title="Generic Syntax Highlighter">GeSHi</abbr> may add extra rules to the rules you |
| specify (and will do so if a user tries to change your styles on the fly), so the last semi-colon in any stylesheet |
| rule is important!</p> |
| |
| <p>All strings here should contain valid stylesheet declarations (it’s also fine to have the empty string).</p> |
| |
| <ul> |
| <li><strong>‘KEYWORDS’:</strong> This is an array, from keyword index to style. The index you use is the index you used in |
| the keywords section to specify the keywords belonging to that group.</li> |
| <li><strong>‘COMMENTS’:</strong> This is an array, from single-line comment index to style for that index. The index ‘MULTI’ is |
| used for multiline comments (and cannot be an array). COMMENT_REGEXP use the style given for their key as |
| if they were single-line comments.</li> |
| <li><strong>‘ESCAPE_CHAR’, ‘BRACKETS’ and ‘METHODS’:</strong> These are arrays with only one index: 0. You cannot add other indices to |
| these arrays.</li> |
| <li><strong>‘STRINGS’:</strong> This defines the various styles for the Quotemarks you defined earlier. If you don’t use |
| multiple styles for strings there’s only one index: 0. Please also add this index in case no strings are present.</li> |
| <li><strong>‘NUMBERS’:</strong> This sets the styles used to highlight numbers. The format used here depends on the format used to |
| set the formats of numbers to highlight. If you just used an integer (bitmask) for numbers, you have to either |
| specify one key with the respective constant, and\or include a key 0 as a default style. If you used an |
| array for the number markup, copy the keys used there and assign the styles accordingly.</li> |
| <li><strong>‘SYMBOLS’:</strong> This provides one key for each symbol group you defined above. If you used the flat usage |
| make sure you include a key for symbols group 0.</li> |
| <li><strong>‘REGEXPS’:</strong> This is an array with a style for each matching regex. Also, since 1.0.7.21, you can specify the |
| name of a function to be called, that will be given the text matched by the regex, each time a match is found. |
| Note that my testing found that <code>create_function</code> would not work with this due to a <abbr title="PHP: HTML Preprocessor">PHP</abbr> bug, so you have to |
| put the function definition at the top of the language file. Be sure to prefix the function name |
| with <code>geshi_[languagename]_</code> as to not conflict with other functions!</li> |
| <li><strong>‘SCRIPT’:</strong> For languages that use script delimiters, this is where you can style each block of script. For |
| example, <abbr title="Hypertext Markup Language">HTML</abbr> and <abbr title="Extensible Markup Language">XML</abbr> have blocks that begin with < and end with > (i.e. tags) and blocks that begin with & and |
| end with ; (i.e. character entities), and you can set a style to apply to each whole block. You specify the |
| delimiters for the blocks below. Note that many languages will not need this feature.</li> |
| </ul> |
| |
| <h4 id="language-file-urls">4.3.6 URLs for Functions</h4><div class="nav"><a href="#language-file-styles">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-numbers-support">Next</a></div> |
| |
| <p>This section lets you specify a url to visit for each keyword group. Useful for pointing functions at their online |
| manual entries.</p> |
| |
| <p>Here is an example:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span></pre></td><td class="de1"><pre class="de1"><span class="st_h">'URLS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> <span class="st_h">'http://www.php.net/{FNAME}'</span><span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st_h">''</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>The indices of this array correspond to the keyword groups you specified in the keywords section. The string <code>{FNAME}</code> |
| marks where the name of the function is substituted in. So for the example above, if the keyword being highlighted is |
| “echo”, then the keyword will be a URL pointing to <code>http://www.php.net/echo</code>. Because some languages (Java!) don’t |
| keep a uniform URL for functions/classes, you may have trouble in creating a URL for that language (though look in the |
| java language file for a novel solution to it’s problem)</p> |
| |
| <h4 id="language-file-numbers-support">4.3.7 Number Highlighting Support</h4><div class="nav"><a href="#language-file-urls">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-oo-support">Next</a></div> |
| |
| <p>If your language supports different formats of numbers (e.g. integers and float representations) and you want |
| <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to handle them differently you can select from a set of predefined formats.</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span></pre></td><td class="de1"><pre class="de1"> <span class="st_h">'NUMBERS'</span> <span class="sy0">=></span> |
| <span class="xtra li2"><span class="de2"> GESHI_NUMBER_INT_BASIC <span class="sy0">|</span> GESHI_NUMBER_INT_CSTYLE <span class="sy0">|</span> GESHI_NUMBER_BIN_PREFIX_0B <span class="sy0">|</span></span></span> GESHI_NUMBER_OCT_PREFIX <span class="sy0">|</span> GESHI_NUMBER_HEX_PREFIX <span class="sy0">|</span> GESHI_NUMBER_FLT_NONSCI <span class="sy0">|</span> |
| <span class="xtra li2"><span class="de2"> GESHI_NUMBER_FLT_NONSCI_F <span class="sy0">|</span> GESHI_NUMBER_FLT_SCI_SHORT <span class="sy0">|</span> GESHI_NUMBER_FLT_SCI_ZERO<span class="sy0">,</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>All the formats you want <abbr title="Generic Syntax Highlighter">GeSHi</abbr> to recognize are selected via a bitmask that is built by bitwise OR-ing the format constants. |
| When styling you use these constants to assign the proper styles. A style not assigned will automatically fallback to style group 0.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>For a complete list of formats supported by <abbr title="Generic Syntax Highlighter">GeSHi</abbr> have a look into the sources of geshi.php.</p> |
| |
| </div> |
| |
| <p>If you want to define your own formats for numbers or when you want to group the style for two or more formats you can use the array syntax.</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| </pre></td><td class="de1"><pre class="de1"> <span class="st_h">'NUMBERS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">1</span> <span class="sy0">=></span> GESHI_NUMBER_INT_BASIC <span class="sy0">|</span> GESHI_NUMBER_INT_CSTYLE<span class="sy0">,</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> GESHI_NUMBER_BIN_PREFIX_0B<span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">3</span> <span class="sy0">=></span> GESHI_NUMBER_OCT_PREFIX<span class="sy0">,</span></span></span> <span class="nu0">4</span> <span class="sy0">=></span> GESHI_NUMBER_HEX_PREFIX<span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">5</span> <span class="sy0">=></span> GESHI_NUMBER_FLT_NONSCI <span class="sy0">|</span> GESHI_NUMBER_FLT_NONSCI_F <span class="sy0">|</span> GESHI_NUMBER_FLT_SCI_SHORT <span class="sy0">|</span> GESHI_NUMBER_FLT_SCI_ZERO</span></span> <span class="br0">)</span><span class="sy0">,</span></pre></td></tr></tbody></table> |
| |
| <p>This creates 5 style groups 1..5 that will highlight each of the formats specified for each group. |
| Styling of these groups doesn’t use the constants but uses the indices you just defined.</p> |
| |
| <p>Instead of using those predefined constants you also can assign a PCRE that matches a number when using this advanced format.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>The extended format hasn’t been exhaustively been tested. So beware of bugs there.</p> |
| |
| </div> |
| |
| <h4 id="language-file-oo-support">4.3.8 Object Orientation Support</h4><div class="nav"><a href="#language-file-numbers-support">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-regexps">Next</a></div> |
| |
| <p>Now we’re reaching the most little-used section of a language file, which includes such goodies as object orientation |
| support and context support. <abbr title="Generic Syntax Highlighter">GeSHi</abbr> can highlight methods and data fields of objects easily, all you need to do is to |
| tell it to do so and what the “splitter” is between object/method etc.</p> |
| |
| <p>Here’s an example:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span></pre></td><td class="de1"><pre class="de1"><span class="st_h">'OOLANG'</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h">'OBJECT_SPLITTER'</span> <span class="sy0">=></span> <span class="st_h">'-&gt;'</span><span class="sy0">,</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>If your language has object orientation, the value of <code>'OOLANG'</code> is true, otherwise it is false. If it is object |
| orientated, in the <code>'OBJECT_SPLITTER'</code> value you put the <code>htmlentities()</code> version of the “splitter” between |
| objects and methods/fields. If it is not, then make this the empty string.</p> |
| |
| <h4 id="language-file-regexps">4.3.9 Using Regular Expressions</h4><div class="nav"><a href="#language-file-oo-support">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-strict-mode">Next</a></div> |
| |
| <p>Regular expressions are a good way to catch any other lexic that fits certain rules but can’t be listed as a keyword. |
| A good example is variables in <abbr title="PHP: HTML Preprocessor">PHP</abbr>: variables always start with either one or two “$” signs, then alphanumeric |
| characters (a simplification). This is easy to catch with regular expressions.</p> |
| |
| <p>And new to version 1.0.2, there is an advanced way of using regular expressions to catch certain things but highlight |
| only part of those things. This is particularly useful for languages like <abbr title="Extensible Markup Language">XML</abbr>.</p> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>Regular expressions use the PCRE syntax (perl-style), <em>not</em> the <code class="highlighted php"><span class="kw3">ereg</span><span class="br0">(</span><span class="br0">)</span></code> style!</p> |
| |
| </div> |
| |
| <p>Here is an example (this time the <abbr title="PHP: HTML Preprocessor">PHP</abbr> file merged with the <abbr title="Extensible Markup Language">XML</abbr> file):</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| </pre></td><td class="de1"><pre class="de1"><span class="nu0">0</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> GESHI_SEARCH <span class="sy0">=></span> <span class="st_h">'(((xml:)?[a-z\-]+))(=)'</span><span class="sy0">,</span></span></span> GESHI_REPLACE <span class="sy0">=></span> <span class="st_h">'\\1'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> GESHI_MODIFIERS <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> GESHI_BEFORE <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> GESHI_AFTER <span class="sy0">=></span> <span class="st_h">'\\4'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"><span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> GESHI_SEARCH <span class="sy0">=></span> <span class="st_h">'(>/?[a-z0-9]*(>)?)'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> GESHI_REPLACE <span class="sy0">=></span> <span class="st_h">'\\1'</span><span class="sy0">,</span></span></span> GESHI_MODIFIERS <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> GESHI_BEFORE <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span></span></span> GESHI_AFTER <span class="sy0">=></span> <span class="st_h">''</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span><span class="nu0">2</span> <span class="sy0">=></span> <span class="st0">"[<span class="es1">\\</span>$]{1,2}[a-zA-Z_][a-zA-Z0-9_]*"</span></pre></td></tr></tbody></table> |
| |
| <p>As you can see there are two formats. One is the “simple” format used in <abbr title="Generic Syntax Highlighter">GeSHi</abbr> < 1.0.2, and the other is a more |
| advanced syntax. Firstly, the simple syntax:</p> |
| |
| <ul> |
| <li><strong>May be in double quotes:</strong> To make it easier for those who always place their regular expressions in double quotes, |
| you may place any regular expression here in double quotes if you wish.</li> |
| <li><strong>Don’t use curly brackets where possible:</strong> If you want to use curly brackets (<code>()</code>) then by all means give it a try, |
| but I’m not sure whether under some circumstances <abbr title="Generic Syntax Highlighter">GeSHi</abbr> may throw a wobbly. You have been warned! If you want to |
| use brackets, it would be better to use the advanced syntax.</li> |
| <li><strong>Don’t use the “everything” regex:</strong> (That’s the <code>.*?</code> regex). Use advanced syntax instead.</li> |
| </ul> |
| |
| <p>And now for advanced syntax, which gives you much more control over exactly what is highlighted:</p> |
| |
| <ul> |
| <li><strong>GESHI_SEARCH:</strong> This element specifies the regular expression to search for. If you plan to capture the output, |
| use brackets (<code>()</code>). See how in the first example above, most of the regular expression is in one set of brackets |
| (with the equals sign in other brackets). You should make sure that the part of the regular expression that is |
| supposed to match what is highlighted is in brackets.</li> |
| <li><strong>GESHI_REPLACE:</strong> This is what the stuff matched by the regular expression will be replaced with. If you’ve |
| grouped the stuff you want highlighted into brackets in the GESHI_SEARCH element, then you can use <code>\\number</code> |
| to match that group, where <code>number</code> is a number corresponding to how many open brackets are between the open |
| bracket of the group you want highlighted and the start of the GESHI_SEARCH string + 1. This may sound confusing, |
| and it probably is, but if you’re familiar with how <abbr title="PHP: HTML Preprocessor">PHP</abbr>’s regular expressions work you should understand. In the |
| example above, the opening bracket for the stuff we want highlighted is the very first bracket in the string, so |
| the number of brackets before that bracket and the start of the string is 0. So we add 1 and get our replacement |
| string of <code>\\1</code> <small>(whew!)</small>.</li> |
| </ul> |
| |
| <p>If you didn’t understand a word of that, make sure that there are brackets around the string in <code>GESHI_SEARCH</code> |
| and use <code>\\1</code> for <code>GESHI_REPLACE</code> ;)</p> |
| |
| <ul> |
| <li><strong>GESHI_MODIFIERS:</strong> Specify modifiers for your regular expression. If your regular expression includes the |
| everything matcher (<code>.*?</code>), then your modifiers should include “s” and “i” (e.g. use ‘si’ for this).</li> |
| <li><strong>GESHI_BEFORE:</strong>Specifies a bracket group that should appear before the highlighted match (this bracketed group will |
| not be highlighted). Use this if you had to match what you wanted by matching part of your regexp string to something |
| before what you wanted to highlight, and you don’t want that part to disappear in the highlighted result.</li> |
| <li><strong>GESHI_AFTER:</strong>Specifies a bracket group that should appear after the highlighted match (this bracketed group will |
| not be highlighted). Use this if you had to match what you wanted by matching part of your regexp string to something |
| after what you wanted to highlight, and you don’t want that part to disappear in the highlighted result.</li> |
| </ul> |
| |
| <p>Is that totally confusing? Here’s the test for if you’re an android or not: If you found that perfectly understandable |
| then you’re an android ;). Here’s a better example:</p> |
| |
| <p>Let’s say that I’m making a language, and variables in this language always start with a dollar sign ($), are always |
| written in lowercase letters and always end with an ampersand (&). eg:</p> |
| |
| <p><code class="highlighted php"><span class="re0">$foo</span><span class="sy0">&</span> <span class="sy0">=</span> <span class="st_h">'bar'</span></code></p> |
| |
| <p>I want to highlight <em>only the text between the $ and the &</em>. How do I do that? With simple regular expressions I can’t, |
| but with advanced, it’s relatively easy:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span></pre></td><td class="de1"><pre class="de1"><span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">// search for a dollar sign, then one or more of the characters a-z, then an ampersand</span></span></span> GESHI_SEARCH <span class="sy0">=></span> <span class="st_h">'(\$)([a-z]+)(&)'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">// we wanna highlight the characters, which are in the second bracketed group</span></span></span> GESHI_REPLACE <span class="sy0">=></span> <span class="st_h">'\\2'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">// no modifiers, since we're not matching the "anything" regex</span></span></span> GESHI_MODIFIERS <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">// before the highlighted characters should be the first</span></span></span> <span class="co1">// bracketed group (always a dollar sign in this example)</span> |
| <span class="xtra li2"><span class="de2"> GESHI_BEFORE <span class="sy0">=></span> <span class="st_h">'\\1'</span><span class="sy0">,</span></span></span> <span class="co1">// after the highlighted characters should be the third</span> |
| <span class="xtra li2"><span class="de2"> <span class="co1">// bracketed group (always an ampersand in this example)</span></span></span> GESHI_AFTER <span class="sy0">=></span> <span class="st_h">'\\3'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>So if someone tried to highlight using my language, all cases of <code>$foo&</code> would turn into:</p> |
| |
| <p><code class="highlighted html4strict">$<span class="sc2"><<span class="kw2">span</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"color: blue;"</span>></span>foo<span class="sc2"><<span class="sy0">/</span><span class="kw2">span</span>><<span class="kw2">span</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"color: green;"</span>></span><span class="sc1">&amp;</span><span class="sc2"><<span class="sy0">/</span><span class="kw2">span</span>></span></code></p> |
| |
| <p>(which would of course be viewed in a browser to get something like <code class="highlighted php"><span class="re0">$foo</span><span class="sy0">&</span></code>)</p> |
| |
| <h4 id="language-file-strict-mode">4.3.10 Contextual Highlighting and Strict Mode</h4><div class="nav"><a href="#language-file-regexps">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-parser-control">Next</a></div> |
| |
| <p>For languages like <abbr title="Hypertext Markup Language">HTML</abbr>, it’s good if we can highlight a tag (like <code class="highlighted html4strict"><span class="sc2"><<span class="kw2">a</span>></span></code> for example). But how do we stop |
| every single “a” in the source getting highlighted? What about for attributes? If I’ve got the word “colspan” in my |
| text I don’t want that highlighted! So how do you tell <abbr title="Generic Syntax Highlighter">GeSHi</abbr> not to highlight in that case? You do it with “Strict Blocks”.</p> |
| |
| <p>Here is an example:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span>13 |
| <span class="xtra li2"><span class="de2">14</span></span>15 |
| <span class="xtra li2"><span class="de2">16</span></span>17 |
| <span class="xtra li2"><span class="de2">18</span></span>19 |
| <span class="xtra li2"><span class="de2">20</span></span>21 |
| <span class="xtra li2"><span class="de2">22</span></span>23 |
| <span class="xtra li2"><span class="de2">24</span></span>25 |
| <span class="xtra li2"><span class="de2">26</span></span>27 |
| </pre></td><td class="de1"><pre class="de1"><span class="sy1"><?</span> <span class="coMULTI">/* ... */</span> |
| <span class="xtra li2"><span class="de2"><span class="st_h">'STRICT_MODE_APPLIES'</span> <span class="sy0">=></span> GESHI_MAYBE<span class="sy0">,</span></span></span><span class="st_h">'SCRIPT_DELIMITERS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'<?php'</span> <span class="sy0">=></span> <span class="st_h">'?>'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'<?'</span> <span class="sy0">=></span> <span class="st_h">'?>'</span></span></span> <span class="br0">)</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'<%'</span> <span class="sy0">=></span> <span class="st_h">'%>'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'<script language="php">'</span> <span class="sy0">=></span> <span class="st_h">'</script>'</span></span></span> <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">4</span> <span class="sy0">=></span> <span class="st0">"/(<\?(?:php)?)(?:'(?:[^'<span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?'|<span class="es1">\"</span>(?:[^<span class="es1">\"</span><span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?<span class="es1">\"</span>|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm"</span><span class="sy0">,</span></span></span> <span class="nu0">5</span> <span class="sy0">=></span> <span class="st0">"/(<%)(?:'(?:[^'<span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?'|<span class="es1">\"</span>(?:[^<span class="es1">\"</span><span class="es1">\\</span><span class="es1">\\</span>]|<span class="es1">\\</span><span class="es1">\\</span>.)*?<span class="es1">\"</span>|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm"</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span><span class="sy0">,</span></span></span><span class="st_h">'HIGHLIGHT_STRICT_BLOCK'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">0</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span></span></span> <span class="nu0">1</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">2</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span></span></span> <span class="nu0">3</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="nu0">4</span> <span class="sy0">=></span> <span class="kw4">true</span><span class="sy0">,</span></span></span> <span class="nu0">5</span> <span class="sy0">=></span> <span class="kw4">true</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span><span class="coMULTI">/* ... */</span> <span class="sy1">?></span></pre></td></tr></tbody></table> |
| |
| <p>What is strict mode? Strict mode says that highlighting only occurs inside the blocks you specify. You can see from |
| the example above that highlighting will only occur if the source is inside <code class="highlighted php"><span class="kw2"><?php</span> <span class="sy0">...</span> <span class="sy1">?></span></code> (though note the |
| <code>GESHI_MAYBE</code>!). Here are some points about strict highlighting:</p> |
| |
| <ul> |
| <li><strong>‘STRICT_MODE_APPLIES’:</strong> This takes three values (all constants): |
| |
| <ul> |
| <li><code>GESHI_ALWAYS</code>: Strict mode always applies for all of the blocks you specify. Users of your language |
| file cannot turn strict mode off. This should be used for markup languages.</li> |
| <li><code>GESHI_NEVER</code>: Strict mode is never used. Users of your language file cannot turn strict mode on. Use this |
| value if there is no such thing as a block of code that would not be highlighted in your language |
| (most languages, like C, Java etc. use this because anything in a C file should be highlighted).</li> |
| <li><code>GESHI_MAYBE</code>: Strict mode *sometimes* applies. It defaults to “off”. Users can turn strict mode on if |
| they please. If strict mode is off then everything in the source will be highlighted, even things outside |
| the strict block markers. If strict mode is on the nothing outside strict block markers will be highlighted.</li> |
| </ul></li> |
| <li><strong>‘SCRIPT_DELIMITERS’:</strong> This is an array of script delimiters, in the format of the above. The indices are use in the |
| ‘SCRIPT’ part of the styles section for highlighting everything in a strict block in a certain way. |
| For example, you could set up your language file to make the background yellow of any code inside a strict |
| block this way. The delimiters are in the form <code class="highlighted php"><span class="st_h">'OPEN'</span> <span class="sy0">=></span> <span class="st_h">'CLOSE'</span></code>. Delimiters can be of any |
| length > 0. Delimiters are <em>not</em> formatted as if they were run through <code class="highlighted php"><span class="kw3">htmlentities</span><span class="br0">(</span><span class="br0">)</span></code>!</li> |
| <li><strong>‘HIGHLIGHT_STRICT_BLOCK’:</strong> specifies whether any highlighting should go on inside each block. Most of |
| the time this should be true, but for example, in the <abbr title="Extensible Markup Language">XML</abbr> language file highlighting is turned off for |
| blocks beginning with <code class="highlighted html4strict"><span class="sc0"><!DOCTYPE</span></code> and ending with <code class="highlighted html4strict">></code>. However, you can still |
| style the overall block using the method described above, and the <abbr title="Extensible Markup Language">XML</abbr> language file does just that.</li> |
| </ul> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>The delimiters should be in <em>reverse alphabetical order</em>. Note that in the above example, <code class="highlighted php"><span class="kw2"><?php</span></code> |
| comes before <code class="highlighted php"><span class="sy1"><?</span></code>.</p> |
| |
| </div> |
| |
| <p>Since <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 instead of specifying an array with starter and ender you may also provide a regular expression |
| that matches <em>the full block</em> you wish to highlight. If the regular expression match starts at the same position |
| as a previous array declaration the Regexp match is taken. This is to allow for a fall-back when a preg_match |
| doesn’t quite work as expected so you still get reasonably well results.</p> |
| |
| <p>If you didn’t get this, you might want to look into the <abbr title="PHP: HTML Preprocessor">PHP</abbr> or <abbr title="Hypertext Markup Language">HTML</abbr> language files as this feature is used there |
| to fix some issues that have been there for about 3 years.</p> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>For <abbr title="PHP: HTML Preprocessor">PHP</abbr> versions <4.3.3 Strict Block Regexps are completely ignored due to problems in those version |
| that would cause loads of warning messages otherwise.</p> |
| |
| </div> |
| |
| <h4 id="language-file-parser-control">4.3.11 Special Parser Settings (Experimental)</h4><div class="nav"><a href="#language-file-strict-mode">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#language-file-tidying-up">Next</a></div> |
| |
| <p>Sometimes it is necessary for a language to render correctly to tweak some of the assumptions <abbr title="Generic Syntax Highlighter">GeSHi</abbr> usually makes to match the behaviour your language expects. |
| To achieve this there is an experimental section called <code class="highlighted php"><span class="st_h">'PARSER_CONTROL'</span></code> which is optional and should be used only if necessary. |
| With the help of this section some internal parameters of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> can be set which are not overrideable by the API and thus their use should be limited as much as possible.</p> |
| |
| <p>The syntax of the <strong>PARSER_CONTROL</strong> basically resembles an array structure simular to the one found in the rest of the language file. All subsections of the <strong>PARSER_CONTROL</strong> are optional. |
| If a given setting isn’t present the usual default values of <abbr title="Generic Syntax Highlighter">GeSHi</abbr> are used. |
| No validation of settings is performed for these settings. Also note that unknown settings are silently ignored.</p> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>All <strong>PARSER_CONTROL</strong> settings are experimental and subject to change. |
| So if you need a special setting in a public language file you should consider requesting it upstream. |
| This is also the reason why documentation on these settings will only cover broad usage information as the underlying implementation might change without further notice.</p> |
| |
| </div> |
| |
| <p>One of the most common reasons why you might want to use the <strong>PARSER_CONTROL</strong> settings is to tweak what characters are allowed to surround a keyword. |
| Usually <abbr title="Generic Syntax Highlighter">GeSHi</abbr> checks for a fixed set of characters like brackets and common symbols that denote the word boundary for a keyword. |
| If this set conflicts with your language (e.g. - is allowed inside a keyword) or you want to limit the usage of a keyword to certain areas (e.g. for <abbr title="Hypertext Markup Language">HTML</abbr> tag names only match after <) you can change those conditions here.</p> |
| |
| <p>Keyword boundary rules can either be set globally (directly within the PARSER_CONTROL’s KEYWORDS section or on a per-group basis. |
| E.g. the following sample from the <abbr title="Hypertext Markup Language">HTML</abbr> language file sets different settings for keyword matching only for Keyword Group 2 and leaves the other groups alone.</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span></pre></td><td class="de1"><pre class="de1"> <span class="st_h">'PARSER_CONTROL'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'KEYWORDS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="nu0">2</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'DISALLOWED_BEFORE'</span> <span class="sy0">=></span> <span class="st_h">'(?<=&lt;|&lt;\/)'</span><span class="sy0">,</span></span></span> <span class="st_h">'DISALLOWED_AFTER'</span> <span class="sy0">=></span> <span class="st_h">'(?=\s|\/|&gt;)'</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span> <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span></pre></td></tr></tbody></table> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>The name <code class="highlighted php"><span class="st_h">'DISALLOWED_BEFORE'</span></code> and <code class="highlighted php"><span class="st_h">'DISALLOWED_AFTER'</span></code> might sound confusing at first, since they don’t define what to prevent, but what to match in order to find a keyword. |
| The reason for this strange naming is based in the original implementation of this feature when Nigel implemented this in the old parser statically. |
| When this implementation was brought out via the <strong>PARSER_CONTROL</strong> settings the original naming wasn’t altered since at that time this really was a blacklist of characters. |
| Later on this implementation was changed from a blacklist of characters to a part of a PCRE regexp, but leaving the name. |
| The naming might be subject to change though.</p> |
| |
| </div> |
| |
| <p>Another option you can change since <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8.3 is whether to treat spaces within keywords as literals (only a single space as given) or if the space should match any whitespace at that location. |
| The following code will enable this behaviour for the whole keyword set. As said above you can choose to enable this for single keyword groups only though.</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| </pre></td><td class="de1"><pre class="de1"> <span class="st_h">'PARSER_CONTROL'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'KEYWORDS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'SPACE_AS_WHITESPACE'</span> <span class="sy0">=></span> <span class="kw4">true</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span> <span class="br0">)</span><span class="sy0">,</span></pre></td></tr></tbody></table> |
| |
| <p>Another option of interest might be disabling certain features for a given language. |
| This might come in handy if the language file you are working on doesn’t support a given function or highlighting certain aspects won’t work properly or would interfere with custom implementations using regular expressions.</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| <span class="xtra li2"><span class="de2">8</span></span>9 |
| <span class="xtra li2"><span class="de2">10</span></span>11 |
| <span class="xtra li2"><span class="de2">12</span></span></pre></td><td class="de1"><pre class="de1"> <span class="st_h">'PARSER_CONTROL'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ENABLE_FLAGS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'ALL'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'NUMBERS'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span></span></span> <span class="st_h">'METHODS'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'SCRIPT'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span></span></span> <span class="st_h">'SYMBOLS'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'ESCAPE_CHAR'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span></span></span> <span class="st_h">'BRACKETS'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'STRINGS'</span> <span class="sy0">=></span> GESHI_NEVER<span class="sy0">,</span></span></span> <span class="br0">)</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span></pre></td></tr></tbody></table> |
| |
| <p>Inside the <code class="highlighted php"><span class="st_h">'ENABLE_FLAGS'</span></code> section follows an array of <code class="highlighted php"><span class="st_h">'name'</span><span class="sy0">=></span>value</code> pairs. |
| Valid names are the sections below the <code class="highlighted php"><span class="st_h">'STYLES'</span></code> section (well, not exactly, but you can look there for what the features are called inside <abbr title="Generic Syntax Highlighter">GeSHi</abbr>). |
| Valid values are the <abbr title="Generic Syntax Highlighter">GeSHi</abbr> constants <code class="highlighted php">GESHI_NEVER</code> (don’t process this feature), <code class="highlighted php">GESHI_ALWAYS</code> (always process this feature, ignore the user) and <code class="highlighted php">GESHI_MAYBE</code> (listen to the user if he want’s this highlighted). |
| The value <code class="highlighted php">GESHI_MAYBE</code> is the default one and thus needs not to be set explicitely.</p> |
| |
| <p>Another setting available through the <strong>PARSER_CONTROL</strong> settings is the possibility to limit the allowed characters before an single line comment.</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| </pre></td><td class="de1"><pre class="de1"> <span class="st_h">'PARSER_CONTROL'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'COMMENTS'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'DISALLOWED_BEFORE'</span> <span class="sy0">=></span> <span class="st_h">'$'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span> <span class="br0">)</span></pre></td></tr></tbody></table> |
| |
| <p>With the current implementation the DISALLOWED_BEFORE COMMENT-specific setting is a list of characters. But this is subject to change.</p> |
| |
| <div class="note"> |
| |
| <div class="note-header">Note:</div> |
| |
| <p>There is no <code class="highlighted php"><span class="st_h">'DISALLOWED_AFTER'</span></code> setting with the <code class="highlighted php"><span class="st_h">'COMMENTS'</span></code>-<strong>PARSER_CONTROL</strong>.</p> |
| |
| </div> |
| |
| <p>Another <strong>PARSER_CONTROL</strong> setting for the environment around certain syntactic constructs refers to the handling of object-oriented languages.</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| <span class="xtra li2"><span class="de2">4</span></span>5 |
| <span class="xtra li2"><span class="de2">6</span></span>7 |
| </pre></td><td class="de1"><pre class="de1"> <span class="st_h">'PARSER_CONTROL'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'OOLANG'</span> <span class="sy0">=></span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">(</span></span></span> <span class="st_h">'MATCH_BEFORE'</span> <span class="sy0">=></span> <span class="st_h">''</span><span class="sy0">,</span> |
| <span class="xtra li2"><span class="de2"> <span class="st_h">'MATCH_AFTER'</span> <span class="sy0">=></span> <span class="st_h">'[a-zA-Z_][a-zA-Z0-9_]*'</span><span class="sy0">,</span></span></span> <span class="st_h">'MATCH_SPACES'</span> <span class="sy0">=></span> <span class="st_h">'[\s]*'</span> |
| <span class="xtra li2"><span class="de2"> <span class="br0">)</span></span></span> <span class="br0">)</span></pre></td></tr></tbody></table> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>Please note that the settings discussed in this section are experimental and might be changed, removed or altered in their meaning at any time.</p> |
| |
| </div> |
| |
| <h4 id="language-file-tidying-up">4.3.12 Tidying Up</h4><div class="nav"><a href="#language-file-parser-control">Previous</a> | <a href="#language-file-sections">Top</a> | <a href="#lang-validation">Next</a></div> |
| |
| <p>All language files should end with:</p> |
| |
| <table class="php geshicode" style="font-family:monospace;"><thead><tr><td colspan="2" class="head">PHP code</td></tr></thead><tbody><tr class="li1"><td class="ln"><pre class="de1">1 |
| <span class="xtra li2"><span class="de2">2</span></span>3 |
| </pre></td><td class="de1"><pre class="de1"><span class="br0">)</span><span class="sy0">;</span> |
| <span class="xtra li2"><span class="de2"> </span></span><span class="sy1">?></span></pre></td></tr></tbody></table> |
| |
| <p>That is the string content <code class="highlighted php"><span class="st0">"<span class="es1">\n</span>);<span class="es1">\n</span>?><span class="es1">\n</span>"</span></code>.</p> |
| |
| <div class="caution"> |
| |
| <div class="caution-header">Caution:</div> |
| |
| <p>Make sure that there is EXACTLY one linebreak character at the end. If you accidentially include more |
| you might end up with messages like “Headers already sent”.</p> |
| |
| </div> |
| |
| <h3 id="lang-validation">4.4 Validating your language file</h3><div class="nav"><a href="#language-file-tidying-up">Previous</a> | <a href="#language-files">Top</a> | <a href="#method-constant-reference">Next</a></div> |
| |
| <p>Since <abbr title="Generic Syntax Highlighter">GeSHi</abbr> 1.0.8 there is a new script <code>langcheck.php</code> in the contrib directory that scans all |
| language files it finds in the geshi/ subdirectory of the <abbr title="Generic Syntax Highlighter">GeSHi</abbr> installation for mistakes.</p> |
| |
| <p>Please make sure that your language does not contain any mistakes that this script shows you when sending in |
| your language file for inclusion into the official release as this saves work for us when including your file. |
| Also you can be sure your language file will work as expected once your language file validates correctly.</p> |
| |
| <p>Please note that not all of the language files shipped with <abbr title="Generic Syntax Highlighter">GeSHi</abbr> are fully valid yet, but we’re working on it |
| and are happy about every patch we get!</p> |
| |
| <h2 id="method-constant-reference">5 Method/Constant Reference</h2><div class="nav"><a href="#lang-validation">Previous</a></div> |
| |
| <p>I’m afraid I have been lying for a little while about this now! Since 1.0.7 I have been including a phpdoc API for |
| the sourcecode in the <a href="api/index.html">api</a> directory, but have forgot to update the documentation! However, it is available, |
| and may assist you in coding, especially for plugin coders.</p> |
| |
| <hr /> |
| |
| <p>That’s all, folks!</p> |
| |
| <p>I’ve improved the documentation greatly from version 1.0.1, but there may still be problems with it, or it may still |
| be confusing for you. Or perhaps I was just plain wrong about one point! If so, contact me and I’ll do my best to sort it out.</p> |
| |
| <p>In case you were wondering, I’ve finished development of the 1.0.X thread of <abbr title="Generic Syntax Highlighter">GeSHi</abbr>. The only releases I’ll make in this |
| thread will be of the bug-fix/add language files type. In particular, version 1.0.2 was a “concept” release - testing |
| how far I could take the highlighting idea (as well as ideas from others).</p> |
| |
| <p>I’m planning a code rewrite for 1.2.X, which will be based on a new engine - a “psuedo-tokenizer” engine. Hopefully |
| it will massively reduce the server load and time taken (by almost eliminating regexps), while providing |
| superior highlighting. But fear not! The interface and method names should all remain the same ^_^ (though I can’t |
| say the same for language files!)</p> |
| |
| <p>And finally, a couple of people have been asking me: how did you generate that documentation? The amazing answer is: my |
| brain. And yes, it took a long time, and I don’t recommend doing it this way. And yes, you can borrow the styles if |
| you like, though flick me an e-mail if you do.</p> |
| |
| <p>Anyway, enough blather from me. Get <abbr title="Generic Syntax Highlighter">GeSHi</abbr> working for you already! :D</p> |
| |
| <div class="header"> |
| |
| <dl> |
| <dt>Authors:</dt> |
| <dd>© 2004 - 2007 <a href="mailto:nigel@geshi.org">Nigel McNie</a></dd> |
| |
| <dd>© 2007 - 2008 <a href="mailto:BenBE@omorphia.de">Benny Baumann</a></dd> |
| |
| <dd>© 2008 <a href="mailto:mail@milianw.de">Milian Wolff</a></dd> |
| |
| <dt><abbr title="Generic Syntax Highlighter">GeSHi</abbr> Website:</dt> |
| <dd><a href="http://qbnz.com/highlighter">http://qbnz.com/highlighter</a></dd> |
| </dl> |
| |
| </div> |
| |
| <div class="footnotes"> |
| <hr /> |
| <ol> |
| |
| <li id="fn:xhtml-strict"> |
| <p>The PRE header (see <a href="#the-code-container">The Code Container</a>) is not valid <abbr title="Hypertext Markup Language">HTML</abbr>, you might want |
| to use one of the other header types instead. <a href="#fnref:xhtml-strict" rev="footnote">↩</a></p> |
| </li> |
| |
| <li id="fn:php-version-note"> |
| <p>Support is granted for <abbr title="PHP: HTML Preprocessor">PHP</abbr> 4.3.0 and above, but especially 4.3.x cannot be guaranteed to |
| work due to a lack of test systems. If you are forced to use such old <abbr title="PHP: HTML Preprocessor">PHP</abbr> versions complain at your hoster or |
| contact us if you find compatibility issues so we can try to resolve them. It’s only <abbr title="PHP: HTML Preprocessor">PHP</abbr> 4.4.X and above that |
| is verified to work. <a href="#fnref:php-version-note" rev="footnote">↩</a></p> |
| </li> |
| |
| <li id="fn:phpbb-note"> |
| <p>I am no longer working on this MOD, however if someone else wants to they can contact me for more |
| information. <a href="#fnref:phpbb-note" rev="footnote">↩</a></p> |
| </li> |
| |
| <li id="fn:plugin-only"> |
| <p>Available as plugin only. In addition, some of the other entries mentioned |
| here may only have <abbr title="Generic Syntax Highlighter">GeSHi</abbr> available as a plugin. <a href="#fnref:plugin-only" rev="footnote">↩</a></p> |
| </li> |
| |
| </ol> |
| </div> |
| </body> |
| </html> |