demo of highlight_file with CSS classes, line numbers, and optionally replaced
1. syntax highlighted display:
001<?phpini_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('<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"><!-- line ' . $i . ' --></span>' . htmlentities($line_disp) . '<br /><br />';$i++; } echo "<br /><h3>source of listing for copy and paste</h3><pre><code><br />" . $the_html . '</pre>';?>
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"><?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">'<code>'</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("&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">'<br /></span>'</span><span class="aw_keyword">,</span><span class="aw_string">'</span><br />'</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">"<br />"</span><span class="aw_keyword">, </span><span class="aw_default">$aw_source</span><span class="aw_keyword">);echo </span><span class="aw_string">"<code>"</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">'<span class="linenum">' </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">'</span>'</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">"<br />"</span><span class="aw_keyword">; </span><span class="aw_default">$the_html </span><span class="aw_keyword">.= </span><span class="aw_string">'<span style="color:red">&lt;!-- line ' </span><span class="aw_keyword">. </span><span class="aw_default">$i </span><span class="aw_keyword">. </span><span class="aw_string">' --&gt;</span>' </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">'&lt;br /&gt;<br />'</span><span class="aw_keyword">;</span><span class="aw_default">$i</span><span class="aw_keyword">++; } echo </span><span class="aw_string">"<br /><h3>source of listing for copy and paste</h3><pre>&lt;code&gt;<br />" </span><span class="aw_keyword">. </span><span class="aw_default">$the_html </span><span class="aw_keyword">. </span><span class="aw_string">'</pre>'</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">?></span></code></pre><br />