1 <?php

 2 function ubb($string) {

 3   $searcharray['bbcode_regexp'] = array(

 4    "/\s*\[quote\][\n\r]*(.+?)[\n\r]*\[\/quote\]\s*/is",

 5    "/(\[box=(#[0-9A-F]{6}|[a-z]+)\])[\n\r]*(.+?)[\n\r]*(\[\/box\])/is",

 6    "/\[url\]\s*(www.|https?:\/\/|ftp:\/\/|gopher:\/\/|news:\/\/|telnet:\/\/|rtsp:\/\/|mms:\/\/){1}([^\[\"']+?)\s*\[\/url\]/ie",

 7    "/\[url=www.([^\[\"']+?)\](.+?)\[\/url\]/is",

 8    "/\[url=(https?|ftp|gopher|news|telnet|rtsp|mms){1}:\/\/([^\[\"']+?)\](.+?)\[\/url\]/is",

 9    "/\[email\]\s*([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+)\s*\[\/email\]/i",

10    "/\[email=([A-Za-z0-9\-_.]+)@([A-Za-z0-9\-_]+[.][A-Za-z0-9\-_.]+)\](.+?)\[\/email\]/is",

11    "/\[color=([^\[]+?)\]/i",

12    "/\[size=([^\[]+?)\]/i",

13    "/\[font=([^\[]+?)\]/i",

14    "/\[align=([^\[]+?)\]/i",

15    "/\[center\]/i",

16    "/\[swf\]\s*([^\[]+?)\s*\[\/swf\]/ies",

17    "/\[img\]\s*([^\[]+?)\s*\[\/img\]/ies",

18    "/\[img=(\d{1,3})[x|\,](\d{1,3})\]\s*([^\[]+?)\s*\[\/img\]/ies"

19   );

20   $replacearray['bbcode_regexp'] = array(

21    "<br><br><center><table border=\"0\" width=\"90%\" cellspacing=\"0\" cellpadding=\"0\"><tr><td>&nbsp;&nbsp;Quote:</td></tr><tr><td><table border=\"0\" width=\"100%\" cellspacing=\"1\" cellpadding=\"10\" bgcolor=\"".BORDERCOLOR."\"><tr><td width=\"100%\" bgcolor=\"".ALTBG2."\" style=\"word-break:break-all\">\\1</td></tr></table></td></tr></table></center><br>",

22    "<blockquote style=\"background-color: \\2 ;\"><span class=\"bold\">$title</span>\\3</blockquote>",

23    "cuturl('\\1\\2')",

24    "<a href=\"http://www.\\1\" target=\"_blank\">\\2</a>",

25    "<a href=\"\\1://\\2\" target=\"_blank\">\\3</a>",

26    "<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",

27    "<a href=\"mailto:\\1@\\2\">\\3</a>",

28    "<font color=\"\\1\">",

29    "<font size=\"\\1\">",

30    "<font face=\"\\1\">",

31    "<p align=\"\\1\">",

32    "<p align=\"center\">",

33    "bbcodeurl('\\1', ' <img src=\"images/attachicons/flash.gif\" align=\"absmiddle\"> <a href=\"%s\" target=\"_blank\">Flash: %s</a> ')",

34    "bbcodeurl('\\1', '<img src=\"%s\" border=\"0\" onload=\"if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt=\'Click here to open new window\';}\" onmouseover=\"if(this.resized) this.style.cursor=\'hand\';\" onclick=\"if(this.resized) {window.open(\'%s\');}\">')",

35    "bbcodeurl('\\3', '<img width=\"\\1\" height=\"\\2\" src=\"%s\" border=\"0\">')"

36   );

37 

38   $searcharray['bbcode_str'] = array(

39    '[/color]', '[/size]', '[/font]', '[/align]', '[b]', '[/b]',

40    '[i]', '[/i]', '[u]', '[/u]', '[list]', '[list=1]', '[list=a]',

41    '[list=A]', '[*]', '[/list]','[/center]'

42   );

43 

44   $replacearray['bbcode_str'] = array(

45    '</font>', '</font>', '</font>', '</p>', '<b>', '</b>', '<i>',

46    '</i>', '<u>', '</u>', '<ul>', '<ol type=1>', '<ol type=a>',

47    '<ol type=A>', '<li>', '</ul></ol>','</p>'

48   );                 

49   $string = str_replace($searcharray['bbcode_str'], $replacearray['bbcode_str'], preg_replace($searcharray['bbcode_regexp'], $replacearray['bbcode_regexp'], $string));

50 

51                 return $string;

52 }

53 

54 function bbcodeurl($url, $tags) {

55  if(!preg_match("/<.+?>/s",$url)) {

56   if(!in_array(strtolower(substr($url, 0, 6)), array('http:/', 'ftp://', 'rtsp:/', 'mms://'))) {

57    $url = 'http://'.$url;

58   }

59   return str_replace('submit', '', sprintf($tags, $url, $url));

60  } else {

61   return '&nbsp;'.$url;

62  }

63 }

64 

65 function cuturl($url) {

66  $length = 65;

67  $urllink = "<a href=\"".(substr(strtolower($url), 0, 4) == 'www.' ? "http://$url" : $url).'" target="_blank">';

68  if(strlen($url) > $length) {

69   $url = substr($url, 0, intval($length * 0.5)).' 一个非常好用的UBB函数_ico '.substr($url, - intval($length * 0.3));

70  }

71  $urllink .= $url.'</a>';

72  return $urllink;

73 }

74 

75 ?>

76