Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Скрипт обработки BB-code

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Скрипт обработки BB-code
Имя
Сообщение << Старые топики   Новые топики >>
Скрипт обработки BB-code - 2008-12-16 17:47:28.580000   
-XAOC-

Сообщений: 28
Оценки: 0
Присоединился: 2006-06-15 10:59:20
Было время на досуге, решил написать скрипт, который бы обрабатывал BB-code. Просьба заценить. Выскажите ваше мнение.

$msg="fh jh]][djhfjs&nbsp;[ 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&amp;hl=en&amp;fs=1[/flash] sj[]][dhkw kjqkj kqjkj ";
$msg=str_replace( "&amp;#032;"&nbsp;&nbsp;&nbsp;&nbsp; ,' '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,$msg);
&nbsp;&nbsp;$msg=preg_replace( "/\n\n/"&nbsp;&nbsp;&nbsp; ,'&lt;p&gt;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,$msg);
&nbsp;&nbsp;$msg=preg_replace( "/\n/"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,'&lt;br&gt;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,$msg);
&nbsp;&nbsp;$msg=preg_replace( "/\\\$/"&nbsp;&nbsp;&nbsp; ,'&amp;#036;'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,$msg);
&nbsp;&nbsp;$msg=preg_replace( "/\r/"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,''&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,$msg);
&nbsp;&nbsp;$msg=stripslashes($msg);
&nbsp;&nbsp;$msg=preg_replace( "/\\\/",'&amp;#092;',$msg);
&nbsp;&nbsp;$msg=str_replace("\r\n","&lt;br&gt;", $msg);
&nbsp;&nbsp;$msg=str_replace("\n\n",'&lt;p&gt;',$msg);
&nbsp;&nbsp;$msg=str_replace("\n",'&lt;br&gt;',$msg);
&nbsp;&nbsp;$msg=str_replace("\t",' ',$msg);
&nbsp;&nbsp;$msg=str_replace("\r",' ',$msg);
&nbsp;&nbsp;$msg=str_replace('&nbsp; ',' ',$msg);
&nbsp;&nbsp;$msg=str_replace("[i]","&lt;i&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[/i]","&lt;/i&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[u]","&lt;u&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[/u]","&lt;/u&gt;",$msg);
&nbsp; $msg=str_replace("[b]","&lt;b&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[/ul]","&lt;/ul&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[ul]","&lt;ul&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[/ol]","&lt;/ol&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[ol]","&lt;ol&gt;",$msg);
&nbsp;&nbsp;$msg=str_replace("[*]","&lt;li&gt;",$msg);
&nbsp;&nbsp; While(!isset($ix))
&nbsp;&nbsp; {&nbsp;$left=strpos($msg,"[");
&nbsp;&nbsp; &nbsp;$right=strpos($msg,"]");
&nbsp;&nbsp; &nbsp;if (isset($right) and $right!=false and isset($left) and $left!=false and $right&lt;=$left)
&nbsp;&nbsp; &nbsp;{$ere=explode("]",$msg);
&nbsp;&nbsp;&nbsp;$ere[1]=$ere[0]."&amp;#93;".$ere[1];
&nbsp;&nbsp;&nbsp;unset($ere[0]);
&nbsp;&nbsp;&nbsp;$msg=implode("]",$ere);
&nbsp;&nbsp;&nbsp; &nbsp;}
&nbsp;&nbsp;&nbsp; &nbsp;else
&nbsp;&nbsp;&nbsp; &nbsp;{


&nbsp;&nbsp;&nbsp;&nbsp;$pattern = '[';
&nbsp;&nbsp;&nbsp;&nbsp;str_replace($pattern,$pattern, $msg, $matches1);
&nbsp;&nbsp;&nbsp;&nbsp;$pattern = ']';
&nbsp;&nbsp;&nbsp;&nbsp;str_replace($pattern, $pattern, $msg,$match);
&nbsp;&nbsp;&nbsp;&nbsp;$s=$matches1;
&nbsp;&nbsp;&nbsp;&nbsp;$s2=$match;
&nbsp;&nbsp;&nbsp;&nbsp;echo"$match[0]&lt;br&gt;";
&nbsp;&nbsp;&nbsp;&nbsp;if ($s&gt;=2 &amp;&amp; $s2&gt;=2)
&nbsp;&nbsp;&nbsp;&nbsp; {
&nbsp;&nbsp;&nbsp;&nbsp;$p1=strpos($msg,"[")+1;
&nbsp;&nbsp;&nbsp;&nbsp;$l1=strpos($msg,"]")-$p1;
&nbsp;&nbsp;&nbsp;&nbsp;$main = substr($msg,$p1, $l1);// имя тега
&nbsp;&nbsp;&nbsp;&nbsp;if (ereg("=",$main))
&nbsp;&nbsp;&nbsp;&nbsp;{$exe=explode("=",$main);
&nbsp;&nbsp;&nbsp;&nbsp;$main=$exe[0];
&nbsp;&nbsp;&nbsp;&nbsp;$param=$exe[1];
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;$l2=strpos($msg,"]")+1;
&nbsp;&nbsp;&nbsp;&nbsp;$p2=strpos($msg,"[/".$main."]");
&nbsp;&nbsp;&nbsp;&nbsp;$l=$p2-$l2;
&nbsp;&nbsp;&nbsp;&nbsp;$cont=substr($msg,$l2, $l);//содержащиеся между тегами
&nbsp;&nbsp;&nbsp;&nbsp;$main=trim($main);
&nbsp;&nbsp;&nbsp;&nbsp;if (isset($param))
&nbsp;&nbsp;&nbsp;&nbsp;{$param=trim($param);}
&nbsp;&nbsp;&nbsp;&nbsp;if (isset($cont) and $cont!=false)
&nbsp;&nbsp;&nbsp;&nbsp;{switch ($main)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;case "url" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isset($param))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$echo="&lt;a href=\"".$param."\" target=\"_blank\"&gt;".$cont."&lt;/a&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$echo="&lt;a href=\"".$cont."\" target=\"_blank\"&gt;".$cont."&lt;/a&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=7;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "link" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isset($param))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$echo="&lt;a href=\"".$param."\" target=\"_blank\"&gt;".$cont."&lt;/a&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$echo="&lt;a href=\"".$cont."\" target=\"_blank\"&gt;".$cont."&lt;/a&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=8;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "color" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isset($param))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$echo="&lt;font color=\"".$param."\"&gt;".$cont."&lt;/font&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$echo="&lt;font color=\"#000000\"&gt;".$cont."&lt;/font&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=9;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "image" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $echo="&lt;img src=\"".$cont."\" border=\"0\" \&gt;";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=9;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "img" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $echo="&lt;img src=\"".$cont."\" border=\"0\" \&gt;";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=7;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "left" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $echo="&lt;font align=\"left\" &gt;".$cont."&lt;/font&gt;";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=8;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "center" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $echo="&lt;font align=\"center\" &gt;".$cont."&lt;/font&gt;";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=10;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "right" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $echo="&lt;font align=\"right\" &gt;".$cont."&lt;/font&gt;";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=9;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "size" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isset($param))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$echo="&lt;font size=\"".$param."\" &gt;".$cont."&lt;/font&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$echo="&lt;font size=\"3\" &gt;".$cont."&lt;/font&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=8;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;case "flash" :
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (isset($param))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$size=explode(",",$param);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!isset($size[0]) or !is_int($size[0]))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$size[0]=425;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (!isset($size[1]) or !is_int($size[1]))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$size[1]=344;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$echo="&lt;object width=\"".$size[0]."\" height=\"".$size[1]."\"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name=\"movie\" value=\"".$cont."\"&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name=\"allowFullScreen\" value=\"true\"&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name=\"allowscriptaccess\" value=\"always\"&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;embed src=\"".$cont."\" type=\"application/x-shockwave-flash\"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"".$size[0]."\" height=\"".$size[1]."\"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/embed&gt;&lt;/object&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$echo="&lt;object width=\"425\" height=\"344\"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name=\"movie\" value=\"".$cont."\"&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name=\"allowFullScreen\" value=\"true\"&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name=\"allowscriptaccess\" value=\"always\"&gt;&lt;/param&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;embed src=\"".$cont."\" type=\"application/x-shockwave-flash\"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"&gt;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/embed&gt;&lt;/object&gt;";}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $step=9;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;if (!isset($echo))
&nbsp;&nbsp;&nbsp;&nbsp;{$ere=explode("[",$msg);
&nbsp;&nbsp;&nbsp;&nbsp;$ere[1]=$ere[0]."&amp;#91;".$ere[1];
&nbsp;&nbsp;&nbsp;&nbsp;unset($ere[0]);
&nbsp;&nbsp;&nbsp;&nbsp;$msg=implode("[",$ere);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;$pattern=substr($msg,$p1-1,$p2+$step-$p1);
&nbsp;&nbsp;&nbsp;&nbsp;$msg=str_replace($pattern,$echo,$msg);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;{$ere=explode("[",$msg);
&nbsp;&nbsp;&nbsp;&nbsp;$ere[1]=$ere[0]."&amp;#91;".$ere[1];
&nbsp;&nbsp;&nbsp;&nbsp;unset($ere[0]);
&nbsp;&nbsp;&nbsp;&nbsp;$msg=implode("[",$ere);}

&nbsp;&nbsp;&nbsp;&nbsp;unset($s,$s2,$p1,$l1,$exe,$main,$param,$l2,$p2,$l,$cont,$echo,$step,$pattern,$ere);
&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp; else
&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;$ere=explode("[",$msg);
&nbsp;&nbsp;&nbsp;&nbsp;if (isset($ere[1]))
&nbsp;&nbsp;&nbsp;&nbsp;{$ere[1]=$ere[0]."&amp;#91;".$ere[1];
&nbsp;&nbsp;&nbsp;&nbsp;unset($ere[0]);
&nbsp;&nbsp;&nbsp;&nbsp;$msg=implode("[",$ere);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;unset($ere);
&nbsp;&nbsp;&nbsp;&nbsp;if (isset($ere[1]))
&nbsp;&nbsp;&nbsp;&nbsp;{$ere=explode("]",$msg);
&nbsp;&nbsp;&nbsp;&nbsp;$ere[1]=$ere[0]."&amp;#93;".$ere[1];
&nbsp;&nbsp;&nbsp;&nbsp;unset($ere[0]);
&nbsp;&nbsp;&nbsp;&nbsp;$msg=implode("]",$ere);
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; break;}
&nbsp;&nbsp;&nbsp; &nbsp; }
&nbsp;&nbsp; }

echo $msg
Post #: 1
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Скрипт обработки BB-code







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.