// GeSHi class - http://qbnz.com/highlighter require_once('geshi/geshi.php'); // formats code from file $uri and highlights according to language $lang (using the GeSHi) function codify($htmlid,$uri,$lang,$line_numbers=true,$show_uri=true) { $dir = "/sourcecode/"; // default dir $lines = file(ABSDIR.$dir.$uri); // put lines of file into array $list = ($line_numbers)? 'ol' : 'ul'; // ordered or unordered list, whether or not you want line numbers $ret = "
<$list id=\"$htmlid\" class=\"code-list $lang\">";
	if (!empty($lines)) {
		foreach ($lines as $line) {
			$line = rtrim($line);							// get rid of whitespace at the end of each line
			$line = str_replace("\t","    ",$line);			// replace tabs with 4 spaces
			$geshi = new GeSHi($line, $lang);				// create GeSHi code highlighting object
			$geshi->enable_classes();
			$line = $geshi->parse_code();					// apply GeSHi highlighting
			$line = preg_replace("@@U","",$line);	// remove 
s created by GeSHi
			$ret .= "
  • $line
  • \n"; } if ($show_uri) $ret .= "
  • source file: $uri
  • \n"; } else $ret .= "
  • Cannot read contents of $uri
  • \n"; $ret .= "
    \n"; return $ret; }