Подцветка кода
тестируем подцветку кода:
вроде работает
/**
* Подцветка кода
*
* @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;
}
вроде работает