|
代码发之前说的话:为了研究让archiver解析UBB代码,我学PHP二个月了.累...终于知道原来是用正则表达式来替换的.这代码公布出来给有用的朋友.
修改文件:\archiver\thread.inc.php
找到代码:
- if($thread['jammer']) {
- $post['message'] = preg_replace("/\<br \/\>/e", "jammer()", $post['message']);
- }
复制代码 下面加:
- //UBB解析开始
- $neter_mo=array(
- "/\[b\](.+?)\[\/b\]/is",//解释加粗B标签
- "/\[i\](.+?)\[\/i\]/is",//解释I标签
- "/\[url=(.+?)\](.+?)\[\/url\]/is",//解释URL
- "/\[url](.+?)\[\/url\]/is",//解释URL
- "/\[img\](.+?)\[\/img\]/is",//解释图片
- "/\[color=(#?[0-9a-f]{6}|[a-z]{3,})\](.+?)\[\/color\]/is",//解释字体颜色
- );
- $neter_str=array(
- "<b>\\1</b>",//替换为加粗B标签
- "<i>\\1</i>",//替换为I标签
- "<a href=\\1>\\2</a>",//替换为URL
- "<a href="\\1" rel='external nofollow'>\\1</a>",//给在论坛乱发连接的人整个nofllow
- "<img src="\\1" />",//替换为图片
- "<font color="\\2\\1">\\2</font>",); //替换为字体颜色
- $post['message'] = preg_replace($neter_mo,$neter_str,$post['message']);
- //UBB解析OK啦
复制代码
短短的几行代码是我二个月的学习成果啊....分享给优化的朋友!!
演示地址:http://www.neter8.com/archiver/tid-77111.html
|
|