demo of highlight_file with CSS classes, line numbers, and optionally   replaced

1. syntax highlighted display:
001
<?php/* highlight_file with CSS classes and line numbers  NOT THOROUGHLY TESTED - USE AT YOUR OWN RISK  Author: Andy Wrigley (http://means.us.com) */ini_set('highlight.default', '"class="aw_default'); ini_set('highlight.keyword','"class="aw_keyword'); ini_set('highlight.string', '"class="aw_string'); ini_set('highlight.html', '"class="aw_htmlsrc');ini_set('highlight.comment', '"class="aw_comment');$aw_source = highlight_file('YOUR_FILE.HERE', TRUE);$aw_source = str_replace('<code>', '' , $aw_source );$aw_source = str_replace(array("\r\n","\r","\n"),'',$aw_source);$aw_source = trim($aw_source);$aw_source = str_replace('', '' , $aw_source );# $aw_source = str_replace("&nbsp;", ' ', $aw_source);$aw_source=str_replace('<br /></span>','</span><br />',$aw_source);$aw_lines = explode("<br />", $aw_source);echo "<code>";$i = 1;foreach ($aw_lines as $aw_line){ $line_disp = '<span class="linenum">' . sprintf("%03d",$i) .'</span>'; $line_disp .=  $aw_line; echo $line_disp . "<br />"; $the_html .= '<span style="color:red">&lt;!-- line ' . $i . ' --&gt;</span>' . htmlentities($line_disp) . '&lt;br /&gt;<br />';$i++; } echo "<br /><h3>source of listing for copy and paste</h3><pre>&lt;code&gt;<br />" . $the_html . '</pre>';/* if you don't want to display the HTML source for the listingthen delete lines 22 and 24 */?>

2. source of listing, for copy and paste

<code>
<!-- line 1 --><span class="linenum">001</span><pre><code class="aw_htmlsrc"><span class="aw_default">&lt;?php</span><span class="aw_comment">/* highlight_file with CSS classes and line numbers NOT THOROUGHLY TESTED - USE AT YOUR OWN RISK Author: Andy Wrigley (http://means.us.com) */</span><span class="aw_default">ini_set</span><span class="aw_keyword">(</span><span class="aw_string">'highlight.default'</span><span class="aw_keyword">, </span><span class="aw_string">'"class="aw_default'</span><span class="aw_keyword">); </span><span class="aw_default">ini_set</span><span class="aw_keyword">(</span><span class="aw_string">'highlight.keyword'</span><span class="aw_keyword">,</span><span class="aw_string">'"class="aw_keyword'</span><span class="aw_keyword">); </span><span class="aw_default">ini_set</span><span class="aw_keyword">(</span><span class="aw_string">'highlight.string'</span><span class="aw_keyword">, </span><span class="aw_string">'"class="aw_string'</span><span class="aw_keyword">); </span><span class="aw_default">ini_set</span><span class="aw_keyword">(</span><span class="aw_string">'highlight.html'</span><span class="aw_keyword">, </span><span class="aw_string">'"class="aw_htmlsrc'</span><span class="aw_keyword">);</span><span class="aw_default">ini_set</span><span class="aw_keyword">(</span><span class="aw_string">'highlight.comment'</span><span class="aw_keyword">, </span><span class="aw_string">'"class="aw_comment'</span><span class="aw_keyword">);</span><span class="aw_default">$aw_source </span><span class="aw_keyword">= </span><span class="aw_default">highlight_file</span><span class="aw_keyword">(</span><span class="aw_string">'YOUR_FILE.HERE'</span><span class="aw_keyword">, </span><span class="aw_default">TRUE</span><span class="aw_keyword">);</span><span class="aw_default">$aw_source </span><span class="aw_keyword">= </span><span class="aw_default">str_replace</span><span class="aw_keyword">(</span><span class="aw_string">'&lt;code&gt;'</span><span class="aw_keyword">, </span><span class="aw_string">'' </span><span class="aw_keyword">, </span><span class="aw_default">$aw_source </span><span class="aw_keyword">);</span><span class="aw_default">$aw_source </span><span class="aw_keyword">= </span><span class="aw_default">str_replace</span><span class="aw_keyword">(array(</span><span class="aw_string">"\r\n"</span><span class="aw_keyword">,</span><span class="aw_string">"\r"</span><span class="aw_keyword">,</span><span class="aw_string">"\n"</span><span class="aw_keyword">),</span><span class="aw_string">''</span><span class="aw_keyword">,</span><span class="aw_default">$aw_source</span><span class="aw_keyword">);</span><span class="aw_default">$aw_source </span><span class="aw_keyword">= </span><span class="aw_default">trim</span><span class="aw_keyword">(</span><span class="aw_default">$aw_source</span><span class="aw_keyword">);</span><span class="aw_default">$aw_source </span><span class="aw_keyword">= </span><span class="aw_default">str_replace</span><span class="aw_keyword">(</span><span class="aw_string">''</span><span class="aw_keyword">, </span><span class="aw_string">'' </span><span class="aw_keyword">, </span><span class="aw_default">$aw_source </span><span class="aw_keyword">);</span><span class="aw_comment"># $aw_source = str_replace("&amp;nbsp;", ' ', $aw_source);</span><span class="aw_default">$aw_source</span><span class="aw_keyword">=</span><span class="aw_default">str_replace</span><span class="aw_keyword">(</span><span class="aw_string">'&lt;br /&gt;&lt;/span&gt;'</span><span class="aw_keyword">,</span><span class="aw_string">'&lt;/span&gt;&lt;br /&gt;'</span><span class="aw_keyword">,</span><span class="aw_default">$aw_source</span><span class="aw_keyword">);</span><span class="aw_default">$aw_lines </span><span class="aw_keyword">= </span><span class="aw_default">explode</span><span class="aw_keyword">(</span><span class="aw_string">"&lt;br /&gt;"</span><span class="aw_keyword">, </span><span class="aw_default">$aw_source</span><span class="aw_keyword">);echo </span><span class="aw_string">"&lt;code&gt;"</span><span class="aw_keyword">;</span><span class="aw_default">$i </span><span class="aw_keyword">= </span><span class="aw_default">1</span><span class="aw_keyword">;foreach (</span><span class="aw_default">$aw_lines </span><span class="aw_keyword">as </span><span class="aw_default">$aw_line</span><span class="aw_keyword">){ </span><span class="aw_default">$line_disp </span><span class="aw_keyword">= </span><span class="aw_string">'&lt;span class="linenum"&gt;' </span><span class="aw_keyword">. </span><span class="aw_default">sprintf</span><span class="aw_keyword">(</span><span class="aw_string">"%03d"</span><span class="aw_keyword">,</span><span class="aw_default">$i</span><span class="aw_keyword">) .</span><span class="aw_string">'&lt;/span&gt;'</span><span class="aw_keyword">; </span><span class="aw_default">$line_disp </span><span class="aw_keyword">.= </span><span class="aw_default">$aw_line</span><span class="aw_keyword">; echo </span><span class="aw_default">$line_disp </span><span class="aw_keyword">. </span><span class="aw_string">"&lt;br /&gt;"</span><span class="aw_keyword">; </span><span class="aw_default">$the_html </span><span class="aw_keyword">.= </span><span class="aw_string">'&lt;span style="color:red"&gt;&amp;lt;!-- line ' </span><span class="aw_keyword">. </span><span class="aw_default">$i </span><span class="aw_keyword">. </span><span class="aw_string">' --&amp;gt;&lt;/span&gt;' </span><span class="aw_keyword">. </span><span class="aw_default">htmlentities</span><span class="aw_keyword">(</span><span class="aw_default">$line_disp</span><span class="aw_keyword">) . </span><span class="aw_string">'&amp;lt;br /&amp;gt;&lt;br /&gt;'</span><span class="aw_keyword">;</span><span class="aw_default">$i</span><span class="aw_keyword">++; } echo </span><span class="aw_string">"&lt;br /&gt;&lt;h3&gt;source of listing for copy and paste&lt;/h3&gt;&lt;pre&gt;&amp;lt;code&amp;gt;&lt;br /&gt;" </span><span class="aw_keyword">. </span><span class="aw_default">$the_html </span><span class="aw_keyword">. </span><span class="aw_string">'&lt;/pre&gt;'</span><span class="aw_keyword">;</span><span class="aw_comment">/* if you don't want to display the HTML source for the listingthen delete lines 22 and 24 */</span><span class="aw_default">?&gt;</span></code></pre><br />

Brought to you by means.us.com