📄 bbscode.php
字号:
<?php
!function_exists('readover') && exit('Forbidden');
function convert($message,$allow,$type="post")
{
global $attachper, $code_num,$code_htm,$phpcode_htm,$foruminfo,$picpath,$imgpath,$stylepath,$attachname,$attachpath,$admincheck,$tpc_author,$tpc_buy,$i_table,$db_cvtimes,$forumset;
if (file_exists(D_P."data/bbscache/wordsfb.php")){
include(D_P."data/bbscache/wordsfb.php");
$replace = $wordsfb + $replace;
if($replace){
$adddb=array('/','^','$','(',')','.','[',']','|','*','?','+','{');
foreach($replace as $key => $value){
foreach($adddb as $k=>$v){
$key = str_replace($v,"\\$v",$key);
}
$message = preg_replace("/$key/i",$value,$message);
}
}
}
$code_num=0;
$code_htm=array();
if(strpos($message,"[code]") !== false && strpos($message,"[/code]") !== false){
$message=preg_replace("/\[code\](.+?)\[\/code\]/eis","phpcode('\\1')",$message,$db_cvtimes);
}
if(strpos($message,"[payto]") !== false && strpos($message,"[/payto]") !== false){
require_once(R_P.'require/paytofunc.php');
$message=preg_replace("/\[payto\](.+?)\[\/payto\]/eis","payto('\\1')",$message);
}
if(strpos($message,"[download]") !== false && strpos($message,"[/download]") !== false){
require_once(R_P.'require/downloadfunc.php');
$message=preg_replace("/\[download\](.+?)\[\/download\]/eis","download('\\1')",$message);
}
$message = preg_replace('/\[list=([aA1]?)\](.+?)\[\/list\]/is', "<ol type=\\1>\\2</ol>", $message);
$message = str_replace("[u]","<u>",$message);
$message = str_replace("[/u]","</u>",$message);
$message = str_replace("[b]","<b>",$message);
$message = str_replace("[/b]","</b>",$message);
$message = str_replace("[i]","<i>",$message);
$message = str_replace("[/i]","</i>",$message);
$message = str_replace("[list]","<ul>",$message);
$message = str_replace('[*]', '<li>', $message);
$message = str_replace("[/list]","</ul>",$message);
$message = str_replace("p_w_upload",$attachname,$message);//此处位置不可调换
$message = str_replace("p_w_picpath",$picpath,$message);//此处位置不可调换
$searcharray = array(
"/\[font=([^\[]*)\](.+?)\[\/font\]/is",
"/\[color=([#0-9a-z]{1,10})\](.+?)\[\/color\]/is",
"/\[email=([^\[]*)\]([^\[]*)\[\/email\]/is",
"/\[email\]([^\[]*)\[\/email\]/is",
"/\[size=(\d+)\](.+?)\[\/size\]/eis",
"/(\[align=)(left|center|right)(\])(.+?)(\[\/align\])/is",
"/(\[box=(#[0-9A-F]{6}|[a-z]+)\])[\n\r]*(.+?)[\n\r]*(\[\/box\])/is",
"/\[glow=(\d+)\,([0-9a-zA-Z]+?)\,(\d+)\](.+?)\[\/glow\]/is"
);
$replacearray = array(
"<font face='\\1'>\\2</font>",
"<font color='\\1'>\\2</font>",
"<a href='mailto:\\1'>\\2</a>",
"<a href='mailto:\\1'>\\1</a>",
"size('\\1','\\2','$allow[size]')",
"<DIV Align=\\2>\\4</DIV>",
"<blockquote style=\"margin-left:10px; margin-right:10px; border:$tablecolor dashed 1px; padding:3px; background-color: \\2 ;\">\\3</blockquote>",
"<span style='WIDTH:\\1;filter:glow(color=\\2,strength=\\3)'>\\4</span>"
);
$message=preg_replace($searcharray,$replacearray,$message);
if ($allow['pic']){
$message = preg_replace("/\[img\](.+?)\[\/img\]/eis","cvpic('\\1','','$allow[picwidth]','$allow[picheight]')",$message,$db_cvtimes);
} else{
$message = preg_replace("/\[img\](.+?)\[\/img\]/eis","nopic('\\1')",$message,$db_cvtimes);
}
if(strpos($message,'[/URL]')!==false || strpos($message,'[/url]')!==false){
$searcharray = array(
"/\[url=(https?|ftp|gopher|news|telnet|mms|rtsp)([^\[\s]+?)\](.+?)\[\/url\]/eis",
"/\[url\]www\.([^\[]+?)\[\/url\]/eis",
"/\[url\](https?|ftp|gopher|news|telnet|mms|rtsp)([^\[]+?)\[\/url\]/eis"
);
$replacearray = array(
"cvurl('\\1','\\2','\\3')",
"cvurl('\\1')",
"cvurl('\\1','\\2')",
);
$message=preg_replace($searcharray,$replacearray,$message);
}
$searcharray = array(
"/\[fly\]([^\[]*)\[\/fly\]/is",
"/\[move\]([^\[]*)\[\/move\]/is",
);
$replacearray = array(
"<marquee width=90% behavior=alternate scrollamount=3>\\1</marquee>",
"<marquee scrollamount=3>\\1</marquee>",
);
$message=preg_replace($searcharray,$replacearray,$message);
if($type=="post"){
if(strpos($message,'[p:')!==false || strpos($message,'[s:')!==false){
global $face,$motion,$act;
include_once(D_P.'data/bbscache/postcache.php');
$message=preg_replace("/\[s:(.+?)\]/eis","postcache('\\1','1')",$message,$db_cvtimes);
$act="<font color=red><b>[$tpc_author]</b></font>";
$message=preg_replace("/\[p:(.+?)\]/eis","postcache('\\1','2')",$message,$db_cvtimes);
}
if($foruminfo['allowhide'] && strpos($message,"[post]") !== false && strpos($message,"[/post]") !== false){
$message=preg_replace("/\[post\](.+?)\[\/post\]/eis","post('\\1')",$message);
}
if($foruminfo['allowencode'] && strpos($message,"[hide") !== false && strpos($message,"[/hide]") !== false){
$message=preg_replace("/\[hide=(.+?)\](.+?)\[\/hide\]/eis","hiden('\\1','\\2')",$message);
}
if($foruminfo['allowsell'] && strpos($message,"[sell") !== false && strpos($message,"[/sell]") !== false){
$message=preg_replace("/\[sell=(.+?)\](.+?)\[\/sell\]/eis","sell('\\1','\\2')",$message);
}
}
if ($allow['flash']){
$message = preg_replace("/(\[flash=)(\d+?)(\,)(\d+?)(\])(.+?)(\[\/flash\])/is","<OBJECT CLASSID=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" WIDTH=\\2 HEIGHT=\\4><PARAM NAME=MOVIE VALUE=\\6><PARAM NAME=PLAY VALUE=TRUE><PARAM NAME=LOOP VALUE=TRUE><PARAM NAME=QUALITY VALUE=HIGH><EMBED SRC=\\6 WIDTH=\\2 HEIGHT=\\4 PLAY=TRUE LOOP=TRUE QUALITY=HIGH></EMBED></OBJECT><br />[<a target=_blank href=\\6>Full Screen</a>] ",$message,$db_cvtimes);
}else{
$message = preg_replace("/(\[flash=)(\d+?)(\,)(\d+?)(\])(.+?)(\[\/flash\])/is","<img src='$imgpath/$stylepath/file/music.gif' align='absbottom'> <a target=_blank href=\\6>flash: \\6</a>",$message,$db_cvtimes);
}
if (strpos($message,"[quote]") !== false && strpos($message,"[/quote]") !== false){
$message=preg_replace("/\[quote\](.+?)\[\/quote\]/eis","qoute('\\1')",$message);
}
if(is_array($code_htm)){
krsort($code_htm);
foreach($code_htm as $codehtm){
foreach($codehtm as $key=>$value){
$message=str_replace("<\twind_code_$key\t>",$value,$message);
}
}
}
if($type=="post"){
if($allow['mpeg']){
global $lang;
require_once GetLang('bbscode');
$message = preg_replace("/\[wmv\](.+?)\[\/wmv\]/is","<EMBED src=\\1 HEIGHT=\"256\" WIDTH=\"314\" AutoStart=1></EMBED>",$message,$db_cvtimes);
$message = preg_replace("/\[rm\](.+?)\[\/rm\]/is","<object classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA height=241 id=Player width=316 VIEWASTEXT><param name=\"_ExtentX\" value=\"12726\"><param name=\"_ExtentY\" value=\"8520\"><param name=\"AUTOSTART\" value=\"0\"><param name=\"SHUFFLE\" value=\"0\"><param name=\"PREFETCH\" value=\"0\"><param name=\"NOLABELS\" value=\"0\"><param name=\"CONTROLS\" value=\"ImageWindow\"><param name=\"CONSOLE\" value=\"_master\"><param name=\"LOOP\" value=\"0\"><param name=\"NUMLOOP\" value=\"0\"><param name=\"CENTER\" value=\"0\"><param name=\"MAINTAINASPECT\" value=\"\\1\"><param name=\"BACKGROUNDCOLOR\" value=\"#000000\"></object><br><object classid=clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA height=32 id=Player2 width=316 VIEWASTEXT><param name=\"_ExtentX\" value=\"18256\"><param name=\"_ExtentY\" value=\"794\"><param name=\"AUTOSTART\" value=\"1\"><param name=\"SHUFFLE\" value=\"0\"><param name=\"PREFETCH\" value=\"0\"><param name=\"NOLABELS\" value=\"0\"><param name=\"CONTROLS\" value=\"controlpanel\"><param name=\"CONSOLE\" value=\"_master\"><param name=\"LOOP\" value=\"0\"><param name=\"NUMLOOP\" value=\"0\"><param name=\"CENTER\" value=\"0\"><param name=\"MAINTAINASPECT\" value=\"0\"><param name=\"BACKGROUNDCOLOR\" value=\"#000000\"><param name=\"SRC\" value=\"\\1\"></object><br><script language=javascript>function FullScreen(){document.Player.SetFullScreen();}</script><input type='button' onclick='javascript:FullScreen()' value='$lang[full_screen]'>",$message,$db_cvtimes);
}else{
$message = preg_replace("/\[wmv\](.+?)\[\/wmv\]/is","<img src='$imgpath/$stylepath/file/music.gif' align='absbottom'> <a target=_blank href='\\1'>\\1</a>",$message,$db_cvtimes);
$message = preg_replace("/\[rm\](.+?)\[\/rm\]/is","<img src='$imgpath/$stylepath/file/music.gif' align='absbottom'> <a target=_blank href='\\1'>\\1</a>",$message,$db_cvtimes);
}
if ($allow['iframe']) {
$message = preg_replace("/\[iframe\](.+?)\[\/iframe\]/is","<IFRAME SRC=\\1 FRAMEBORDER=0 ALLOWTRANSPARENCY=true SCROLLING=YES WIDTH=97% HEIGHT=340></IFRAME>",$message,$db_cvtimes);
}else{
$message = preg_replace("/\[iframe\](.+?)\[\/iframe\]/is","Iframe Close: <a target=_blank href='\\1'>\\1</a>",$message,$db_cvtimes);
}
}
if(is_array($phpcode_htm)){
foreach($phpcode_htm as $key=>$value){
$message=str_replace("<\twind_phpcode_$key\t>",$value,$message);
}
}
return $message;
}
function postcache($key,$type){
if($type==1){
global $face,$imgpath;
return "<img src='$imgpath/post/smile/{$face[$key]}'>";
}elseif($type==2){
global $act,$motion,$imgpath;
return "<br>$act {$motion[$key][1]}<br><img src=$imgpath/post/act/{$motion[$key][2]}><br>";
}
}
function copyctrl($bgcolor='#FFFFFF'){
$lenth=10;
mt_srand((double)microtime() * 1000000);
for($i=0;$i<$lenth;$i++){
$randval.=chr(mt_rand(0,126));
}
$randval=str_replace('<','<',$randval);
return "<span style=\"font-size: 0pt;color:'$bgcolor'\" > $randval </span> <br>";
}
function attachment($message){
global $attachper,$db_cvtimes;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -