返回列表 回复 发帖

discuz论坛archiver解析UBB代码

代码发之前说的话:为了研究让archiver解析UBB代码,我学PHP二个月了.累...终于知道原来是用正则表达式来替换的.这代码公布出来给有用的朋友.

修改文件:\archiver\thread.inc.php

找到代码:
  1. if($thread['jammer']) {
  2.    $post['message'] =  preg_replace("/\<br \/\>/e", "jammer()", $post['message']);
  3.   }
复制代码
下面加:
  1. //UBB解析开始
  2.   $neter_mo=array(
  3.   "/\[b\](.+?)\[\/b\]/is",//解释加粗B标签
  4.   "/\[i\](.+?)\[\/i\]/is",//解释I标签
  5.   "/\[url=(.+?)\](.+?)\[\/url\]/is",//解释URL
  6.   "/\[url](.+?)\[\/url\]/is",//解释URL
  7.   "/\[img\](.+?)\[\/img\]/is",//解释图片
  8.   "/\[color=(#?[0-9a-f]{6}|[a-z]{3,})\](.+?)\[\/color\]/is",//解释字体颜色
  9. );
  10. $neter_str=array(
  11.   "<b>\\1</b>",//替换为加粗B标签
  12.   "<i>\\1</i>",//替换为I标签
  13.   "<a href=\\1>\\2</a>",//替换为URL
  14.   "<a href=\"\\1\" rel='external nofollow'>\\1</a>",//给在论坛乱发连接的人整个nofllow
  15.   "<img src=\"\\1\" />",//替换为图片
  16.   "<font color=\"\\2\\1\">\\2</font>",); //替换为字体颜色
  17.   $post['message'] =  preg_replace($neter_mo,$neter_str,$post['message']);
  18.   //UBB解析OK啦
复制代码
短短的几行代码是我二个月的学习成果啊....分享给seo优化的朋友!!

原创:www.neter8.com 网络人站长论坛
树的方向由风决定、人生的方向由自己决定
返回列表