Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

一个非常好用的UBB函数

Posted on 2007-08-18 12:56  analyzer  阅读(418)  评论(0编辑  收藏  举报
 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)).'  '.substr($url, - intval($length * 0.3));
70  }
71  $urllink .= $url.'</a>';
72  return $urllink;
73 }
74 
75 ?>
76 
我要啦免费统计