php HTML标签代码和UBB互相转换

凨影 1250

1.UBB 转为 HTML

<?php
function ubb($Text){
    $Text=trim($Text);
    //$Text=htmlspecialchars($Text);
    $Text=preg_replace("/\\t/is","  ",$Text);
    $Text=preg_replace("/\[h1\](.+?)\[\/h1\]/is","<h1>\\1</h1>",$Text);
    $Text=preg_replace("/\[h2\](.+?)\[\/h2\]/is","<h2>\\1</h2>",$Text);
    $Text=preg_replace("/\[h3\](.+?)\[\/h3\]/is","<h3>\\1</h3>",$Text);
    $Text=preg_replace("/\[h4\](.+?)\[\/h4\]/is","<h4>\\1</h4>",$Text);
    $Text=preg_replace("/\[h5\](.+?)\[\/h5\]/is","<h5>\\1</h5>",$Text);
    $Text=preg_replace("/\[h6\](.+?)\[\/h6\]/is","<h6>\\1</h6>",$Text);
    $Text=preg_replace("/\[separator\]/is","",$Text);
    $Text=preg_replace("/\[center\](.+?)\[\/center\]/is","<center>\\1</center>",$Text);
    $Text=preg_replace("/\[url=http:\/\/([^\[]*)\](.+?)\[\/url\]/is","<a href=\"http://\\1\" target=_blank>\\2</a>",$Text);
    $Text=preg_replace("/\[url=([^\[]*)\](.+?)\[\/url\]/is","<a href=\"http://\\1\" target=_blank>\\2</a>",$Text);
    $Text=preg_replace("/\[url\]http:\/\/([^\[]*)\[\/url\]/is","<a href=\"http://\\1\" target=_blank>\\1</a>",$Text);
    $Text=preg_replace("/\[url\]([^\[]*)\[\/url\]/is","<a href=\"\\1\" target=_blank>\\1</a>",$Text);
    $Text=preg_replace("/\[img\](.+?)\[\/img\]/is","<img class="lazyload" data-original=\\1 />",$Text);
    $Text=preg_replace("/\[color=(.+?)\](.+?)\[\/color\]/is","<font color=\\1>\\2</font>",$Text);
    $Text=preg_replace("/\[size=(.+?)\](.+?)\[\/size\]/is","<font size=\\1>\\2</font>",$Text);
    $Text=preg_replace("/\[sup\](.+?)\[\/sup\]/is","<sup>\\1</sup>",$Text);
    $Text=preg_replace("/\[sub\](.+?)\[\/sub\]/is","<sub>\\1</sub>",$Text);
    $Text=preg_replace("/\[pre\](.+?)\[\/pre\]/is","<pre>\\1</pre>",$Text);
    $Text=preg_replace("/\[email\](.+?)\[\/email\]/is","<a href="mailto:\\1">\\1</a>",$Text);
    $Text=preg_replace("/\[colorTxt\](.+?)\[\/colorTxt\]/eis","color_txt("\\1")",$Text);
    $Text=preg_replace("/\[emot\](.+?)\[\/emot\]/eis","emot("\\1")",$Text);
    $Text=preg_replace("/\[i\](.+?)\[\/i\]/is","<i>\\1</i>",$Text);
    $Text=preg_replace("/\[u\](.+?)\[\/u\]/is","<u>\\1</u>",$Text);
    $Text=preg_replace("/\[b\](.+?)\[\/b\]/is","<b>\\1</b>",$Text);
    $Text=preg_replace("/\[quote\](.+?)\[\/quote\]/is"," <div class="quote"><h5>引用:</h5><blockquote>\\1</blockquote></div>", $Text);
    $Text=preg_replace("/\[code\](.+?)\[\/code\]/eis","highlight_code("\\1")", $Text);
    $Text=preg_replace("/\[php\](.+?)\[\/php\]/eis","highlight_code("\\1")", $Text);
    $Text=preg_replace("/\[sig\](.+?)\[\/sig\]/is","<div class="sign">\\1</div>", $Text);
    $Text=preg_replace("/\\n/is","<br/>",$Text);
    return $Text;
}?>

功能就是将含有ubb代码的字符串里面的ubb代码转换成HTML标签代码,返回转换完的字符串。


2.HTML 转为 UBB

<script>
function htmltoubb(str){
    str = str.replace(/<br[^>]*>/ig,"\n");
    str = str.replace(/<p[^>\/]*\/>/ig,"\n"); 
    str = str.replace(/\son[\w]{3,16}\s?=\s*([\"\"]).+?\1/ig,"");
    str = str.replace(/<hr[^>]*>/ig,"[hr]");
    str = str.replace(/<(sub|sup|u|strike|b|i|pre)>/ig,"[$1]");
    str = str.replace(/<\/(sub|sup|u|strike|b|i|pre)>/ig,"[/$1]");
    str = str.replace(/<(\/)?b>/ig,"[$1b]");
    str = str.replace(/<(\/)?em>/ig,"[$1i]");
    str = str.replace(/<(\/)?blockquote([^>]*)>/ig,"[$1blockquote]");
    str = str.replace(/<img[^>]*smile=\"(\d+)\"[^>]*>/ig,"[s:$1]");
    str = str.replace(/<img[^>]*src=[\"\"\s]*([^\s\"\"]+)[^>]*>/ig,"[img]"+"$1"+"[/img]");
    str = str.replace(/<a[^>]*href=[\"\"\s]*([^\s\"\"]*)[^>]*>(.+?)<\/a>/ig,"[url]"+"$1"+"[/url]");
    str = str.replace(/<h([1-6])+>(.+?)<\/h\1>/ig,"[h$1]"+"$2"+"[/h$1]");
    str = str.replace(/<[^>]*?>/ig, "");
    str = str.replace(/&amp;/ig, "&");
    str = str.replace(/&lt;/ig, "<");
    str = str.replace(/&gt;/ig, ">");
}
</script>

这个的用法就是传入含有HTML标签代码的字符串,方法处理HTML标签转为UBB代码,返回转换后的字符串。

TAGS

联系QQ:77798085 赞助请点这里
管理员回复
    全部回复 (10)
    • yifengzhou2019-12-27
      2
      谢谢楼主,楼主辛苦!
      亚太地区
      这个人很有个性,连签名都没有!
    • 862536402019-12-29
      3
      面对如此强贴,论遇到多大阻力,只要我一息上尚存,就绝不会让它沉沦下去,这一点请楼主放心。
      亚太地区
      这个人很有个性,连签名都没有!
    • 354354352020-2-7
      4
      难得一见的好贴。。。。。。
      亚太地区
      这个人很有个性,连签名都没有!
    • szhistar2020-4-14
      5
      在下对你的景仰之情有如滔滔长江之水,连绵不绝……又如黄河泛滥,一发不可收拾……
      亚太地区
      这个人很有个性,连签名都没有!
    • 6
      面对如此强贴,论遇到多大阻力,只要我一息上尚存,就绝不会让它沉沦下去,这一点请楼主放心。
      亚太地区
      这个人很有个性,连签名都没有!
    • jie0072020-5-16
      7
      楼主的帖子实在是写得太好了。文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子,实在是我三生之幸啊。
      亚太地区
      这个人很有个性,连签名都没有!
    • 花岸助手2020-6-10
      8
      楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了。
      亚太地区
      这个人很有个性,连签名都没有!
    • wan2bin2020-6-11
      9
      顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶!
      亚太地区
      这个人很有个性,连签名都没有!
    • 心酸2020-6-14
      10
      楼主很辛苦,若是不回帖,心里过意不去,可是我打字实在不行,只好快速回复了,楼主不要见怪!
      亚太地区
      这个人很有个性,连签名都没有!
    • shuiying2020-6-19
      11
      看帖必回是好习惯!
      亚太地区
      这个人很有个性,连签名都没有!