Подцветка кода

тестируем подцветку кода:
/**
	 * Подцветка кода
	 *
	 * @param string $sText
	 * @return string
	 */
	public function GeshiParser($sText) {
		$sTextTemp=str_replace("\r\n",'[rn]',$sText);
		$sTextTemp=str_replace("\n",'[n]',$sTextTemp);
		if (preg_match_all("/<code>(.*)<\/code>/Ui",$sTextTemp,$aMatch,PREG_SET_ORDER)) {
			$oGeshi = new GeSHi('','php');
			$oGeshi->set_header_type(GESHI_HEADER_DIV);
			$oGeshi->enable_classes();
			$oGeshi->set_overall_style('color: #000066; border: 1px solid #d0d0d0; background-color: #f0f0f0;', false);
			$oGeshi->set_line_style('color: #003030;', 'font-weight: bold; color: #006060;', true);
			$oGeshi->set_code_style('color: #000020;', true);
			$oGeshi->enable_keyword_links(false);
			$oGeshi->set_link_styles(GESHI_LINK, 'color: #000060;');
			$oGeshi->set_link_styles(GESHI_HOVER, 'background-color: #f0f000;');
			foreach ($aMatch as $aCode) {
				$sCode=html_entity_decode($aCode[1]);
				$sCode=str_replace("[rn]","\r\n",$sCode);
				$sCode=str_replace("[n]","\n",$sCode);
				$oGeshi->set_source($sCode);
				$sCodeGeshi=$oGeshi->parse_code();
				$sTextTemp=str_replace($aCode[0],$sCodeGeshi,$sTextTemp);
			}
			$sTextTemp=str_replace("[rn]","\r\n",$sTextTemp);
			$sTextTemp=str_replace("[n]","\n",$sTextTemp);
			$sTextTemp='<style type="text/css">'.$oGeshi->get_stylesheet(true).'</style>'."\r\n".$sTextTemp;
			return $sTextTemp;
		}
		return $sText;
	}

вроде работает