-XAOC-
Сообщений: 28
Оценки: 0
Присоединился: 2006-06-15 10:59:20
|
Было время на досуге, решил написать скрипт, который бы обрабатывал BB-code. Просьба заценить. Выскажите ваше мнение. $msg="fh jh]][djhfjs [ color=red] hdjfhj[]fj ah[url]http://www.xaoc.com.ua/[/url]s dhajfhj[/color] dhjfah [flash=425,344]http://www.youtube.com/v/7NvUcmQccP8&hl=en&fs=1[/flash] sj[]][dhkw kjqkj kqjkj "; $msg=str_replace( "&#032;" ,' ' ,$msg); $msg=preg_replace( "/\n\n/" ,'<p>' ,$msg); $msg=preg_replace( "/\n/" ,'<br>' ,$msg); $msg=preg_replace( "/\\\$/" ,'&#036;' ,$msg); $msg=preg_replace( "/\r/" ,'' ,$msg); $msg=stripslashes($msg); $msg=preg_replace( "/\\\/",'&#092;',$msg); $msg=str_replace("\r\n","<br>", $msg); $msg=str_replace("\n\n",'<p>',$msg); $msg=str_replace("\n",'<br>',$msg); $msg=str_replace("\t",' ',$msg); $msg=str_replace("\r",' ',$msg); $msg=str_replace(' ',' ',$msg); $msg=str_replace("[i]","<i>",$msg); $msg=str_replace("[/i]","</i>",$msg); $msg=str_replace("[u]","<u>",$msg); $msg=str_replace("[/u]","</u>",$msg); $msg=str_replace("[b]","<b>",$msg); $msg=str_replace("[/ul]","</ul>",$msg); $msg=str_replace("[ul]","<ul>",$msg); $msg=str_replace("[/ol]","</ol>",$msg); $msg=str_replace("[ol]","<ol>",$msg); $msg=str_replace("[*]","<li>",$msg); While(!isset($ix)) { $left=strpos($msg,"["); $right=strpos($msg,"]"); if (isset($right) and $right!=false and isset($left) and $left!=false and $right<=$left) {$ere=explode("]",$msg); $ere[1]=$ere[0]."&#93;".$ere[1]; unset($ere[0]); $msg=implode("]",$ere); } else { $pattern = '['; str_replace($pattern,$pattern, $msg, $matches1); $pattern = ']'; str_replace($pattern, $pattern, $msg,$match); $s=$matches1; $s2=$match; echo"$match[0]<br>"; if ($s>=2 && $s2>=2) { $p1=strpos($msg,"[")+1; $l1=strpos($msg,"]")-$p1; $main = substr($msg,$p1, $l1);// имя тега if (ereg("=",$main)) {$exe=explode("=",$main); $main=$exe[0]; $param=$exe[1]; } $l2=strpos($msg,"]")+1; $p2=strpos($msg,"[/".$main."]"); $l=$p2-$l2; $cont=substr($msg,$l2, $l);//содержащиеся между тегами $main=trim($main); if (isset($param)) {$param=trim($param);} if (isset($cont) and $cont!=false) {switch ($main) { case "url" : if (isset($param)) {$echo="<a href=\"".$param."\" target=\"_blank\">".$cont."</a>";} else {$echo="<a href=\"".$cont."\" target=\"_blank\">".$cont."</a>";} $step=7; break; case "link" : if (isset($param)) {$echo="<a href=\"".$param."\" target=\"_blank\">".$cont."</a>";} else {$echo="<a href=\"".$cont."\" target=\"_blank\">".$cont."</a>";} $step=8; break; case "color" : if (isset($param)) {$echo="<font color=\"".$param."\">".$cont."</font>";} else {$echo="<font color=\"#000000\">".$cont."</font>";} $step=9; break; case "image" : $echo="<img src=\"".$cont."\" border=\"0\" \>"; $step=9; break; case "img" : $echo="<img src=\"".$cont."\" border=\"0\" \>"; $step=7; break; case "left" : $echo="<font align=\"left\" >".$cont."</font>"; $step=8; break; case "center" : $echo="<font align=\"center\" >".$cont."</font>"; $step=10; break; case "right" : $echo="<font align=\"right\" >".$cont."</font>"; $step=9; break; case "size" : if (isset($param)) {$echo="<font size=\"".$param."\" >".$cont."</font>";} else {$echo="<font size=\"3\" >".$cont."</font>";} $step=8; break; case "flash" : if (isset($param)) {$size=explode(",",$param); if (!isset($size[0]) or !is_int($size[0])) {$size[0]=425;} if (!isset($size[1]) or !is_int($size[1])) {$size[1]=344;} $echo="<object width=\"".$size[0]."\" height=\"".$size[1]."\"> <param name=\"movie\" value=\"".$cont."\"></param> <param name=\"allowFullScreen\" value=\"true\"></param> <param name=\"allowscriptaccess\" value=\"always\"></param> <embed src=\"".$cont."\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"".$size[0]."\" height=\"".$size[1]."\"> </embed></object>";} else {$echo="<object width=\"425\" height=\"344\"> <param name=\"movie\" value=\"".$cont."\"></param> <param name=\"allowFullScreen\" value=\"true\"></param> <param name=\"allowscriptaccess\" value=\"always\"></param> <embed src=\"".$cont."\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"> </embed></object>";} $step=9; break; } if (!isset($echo)) {$ere=explode("[",$msg); $ere[1]=$ere[0]."&#91;".$ere[1]; unset($ere[0]); $msg=implode("[",$ere); } else { $pattern=substr($msg,$p1-1,$p2+$step-$p1); $msg=str_replace($pattern,$echo,$msg); } } else {$ere=explode("[",$msg); $ere[1]=$ere[0]."&#91;".$ere[1]; unset($ere[0]); $msg=implode("[",$ere);} unset($s,$s2,$p1,$l1,$exe,$main,$param,$l2,$p2,$l,$cont,$echo,$step,$pattern,$ere); } else { $ere=explode("[",$msg); if (isset($ere[1])) {$ere[1]=$ere[0]."&#91;".$ere[1]; unset($ere[0]); $msg=implode("[",$ere); } unset($ere); if (isset($ere[1])) {$ere=explode("]",$msg); $ere[1]=$ere[0]."&#93;".$ere[1]; unset($ere[0]); $msg=implode("]",$ere); } break;} } } echo $msg
|