用geshi+ajax实现代码高亮--实现篇
首先,需要下载geshi,在http://qbnz.com/highlighter/,下载后解压上传到合适的位置(我的放在common目录里面,位置随意放,但要记住)。
其次,新增2个文件:(都位于common目录下,如果前面的geshi放到位置不一样,注意code.php的的include路径)
1、code.php--实现接收代码,用geshi处理并返回结果
include './geshi/geshi.php';
$source = $_POST['code'];
$language = $_POST['lang'];
$source = str_replace("(|D|F|)","&",$source);
$source = str_replace("(|D|J|)","+",$source);
$geshi = new GeSHi($source, $language);
echo $geshi->parse_code();
?>
2、HiLightCode.asp--放入ajax代码,实现传送代码并回显代码处理结果(全是javascript代码)
最后,改动3个文件:
1、在ubbcode.asp中增加(大约位于259行左右)
re.Pattern = "\[code=(.[^\]]*)\](.*?)\[\/code\]"
Set strMatchs = re.Execute(strContent)
For Each strMatch in strMatchs
Dim lang,code,rnd_ID,rndID_t,rndID_c,Code_hi,Code_nm
lang=strMatch.SubMatches(0)
code=strMatch.SubMatches(1)
Randomize
rnd_ID = Int(100000 * Rnd)
rndID_t = "Type"& rnd_ID
rndID_c = "Code"& rnd_ID
Code_hi="
显示: 高亮"
Code_nm=" | 普通
"
strContent = Replace(strContent,strMatch.Value,"
"〈&" 代码"&Code_hi & Code_nm &"
"&code&"
")
NEXT
2、在pj根目录下的article.asp和default.asp文件中加入文件引用(加在最后的footer.asp前,否则会引起IE下边栏显示问题)
使用很简单,跟以前添加代码一样,只需注明代码类型就可以了,例如:
[code=asp][/code]
这只是粗略实现这个效果,具体可能有些地方还有待改进
HiLightCode.asp、ubbcode.asp、code.php三个文件打包下载
点击下载此文件
请把HiLightCode.asp、ubbcode.asp、code.php这3个文件打包提供一下,这么复制代码的话,有些特殊字符会出现问题,希望发给我一份mchonline(AT)hotmail.com
[reply=defe,2009-04-18 09:39 PM]已经发给你了[/reply]
请问最后保存在数据库的代码自动加了HTML标签吗?
那样的话一小段程序代码保存都要占用很大的数据库空间,我一直在关注这个插件,特别是能在ASP下用的,希望能指点一下,我的QQ89392592,定当重谢!
[reply=defe,2009-05-12 00:19 AM]数据库里保存的是普通的代码,就是“[code=**]代码[/code]“,读出后再通过geshi着色。[/reply]