Home  >  Article  >  Backend Development  >  PHP Convert HTML code to UBB forum code_PHP tutorial

PHP Convert HTML code to UBB forum code_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 14:53:37852browse

Lie1684网(LieHuo24.Net) teaches17Cheng recently added a download section The one-click repost function, the Agni download column is built using DedeCMS. Everyone knows that dede does not have a one-click repost function, so I had to write one myself, and finally realized it. Write down the HTML to UBB code of the software introduction here.

One-click repost demonstration:

Regarding the problem of converting HTML to UBB code with PHP, the author found a few on the Internet, but they were not easy to use, so I modified and organized them myself. If you have other needs, you can leave a message below.

PHP code:

Copy to ClipboardLiehuo.Net CodesQuoted content: [www.bkjia.com] $intro = $liehuo-net; // Here is the variable value you obtained.
$intro = str_replace("n",'',$intro);
$intro = preg_replace("/]+HREF="([^"]+)"[ ^>]*>(.*?)/i","[url=$1]$2[/url]",$intro);
$intro = preg_replace("/< font(.*?)color="#([^ >]+)"(.*?)>(.*?)/i","[color =$2]$4[/color]",$intro);
$intro = preg_replace("/]+)"( .*?)>(.*?)/i","[face=$2]$4[/face]",$intro);
$intro = preg_replace("/]+)"(.*?)>(.*?)/i", "[size=$2]$4[/size]",$intro);
$intro = preg_replace("/]+src="([^"]+)"[^> ;]*>/i","[img]$1[/img]",$intro);
$intro = preg_replace("/]+ALIGN="([^" ]+)"[^>]*>(.*?)
/i","[align=$1]$2[/align]",$intro);
$intro = preg_replace ("/]+ALIGN="([^"]+)"[^>]*>(.*?)

/i","[align=$1 ]$2[/align]",$intro);
$intro = preg_replace("/<([/]?)u>/i","[$1u]",$intro);
$intro = preg_replace("/<([/]?)em>/i","[$1I]",$intro);
$intro = preg_replace("/<([/]?) strong>/i","[$1b]",$intro);
$intro = preg_replace("/<([/]?)i>/i","[$1i]",$intro );
echo $intro; // Finally get the UBB code
?>

Now that we know the conversion of HTML to UBB, can UBB return HTML? Please refer to the code below, collected online.

Code 1:

Copy to ClipboardLiehuo.Net CodesQuoted content: [www.bkjia.com] function ubb2html($strCodes) {
$match = array(
"%[b](.*?)[/b]%si",
"%[center ](.*?)[/center]%si",
"%[url](.*?)[/url]%si",
"%[url=(.*?)]( .*?)[/url]%si",
"%[img](.*?)[/img]%si",
"%[fieldset=(.*?)](.* ?)[/fieldset]%si"

);
$replace = array(
"$1",
"
$1
",
"$1",
"$2< /a>",
"
",
"
$1$2
"
);
$strCodes = preg_replace($match, $replace, $strCodes);

return $strCodes ;
}
?>

Code 2:

Copy to ClipboardLiehuo.Net Codes引用的内容:[www.bkjia.com] function ubb2html($sUBB)
{
$sHtml=$sUBB;
$sHtml=preg_replace("/$sHtml=preg_replace("/>/",'>',$sHtml);
$sHtml=preg_replace("/r?n/",'
',$sHtml);
$sHtml=preg_replace("/[(/?)(b|u|i|s|sup|sub)]/i",'<$1$2>',$sHtml);
$sHtml=preg_replace("/[colors*=s*([^]]+?)]/i",'',$sHtml);
function getSizeName($match)
{
$arrSize=array('8pt','10pt','12pt','14pt','18pt','24pt','36pt');
return '';
}
$sHtml=preg_replace_callback("/[sizes*=s*(d+?)]/i",'getSizeName',$sHtml);
$sHtml=preg_replace("/[fonts*=s*([^]]+?)]/i",'',$sHtml);
$sHtml=preg_replace("/[backs*=s*([^]]+?)]/i",'',$sHtml);
$sHtml=preg_replace("/[/(color|size|font|back)]/i",'
',$sHtml);

for($i=0;$i<3;$i++)$sHtml=preg_replace("/[aligns*=s*([^]]+?)](((?![align(?:s+[^]]+)?])[sS])*?)[/align]/",'

$2

',$sHtml);
$sHtml=preg_replace("/[img]s*([sS]+?)s*[/img]/i",'',$sHtml);
function getImg($match)
{
$p1=$match[1];$p2=$match[2];$p3=$match[3];$src=$match[4]; title="烈火提示:点击查看"
$a=$p3?$p3:($p2?$p1:'');
return '';
}
$sHtml=preg_replace_callback("/[imgs*=(?:s*(d+)s*,s*(d+)s*)?(?:,?s*(w+)s*)?]s*([sS]+?)s*[/img]/i",'getImg',$sHtml);
$sHtml=preg_replace("/[url]s*([sS]+?)s*[/url]/i",'$1',$sHtml);
$sHtml=preg_replace("/[urls*=s*([^]s]+?)s*]s*([sS]+?)s*[/url]/i",'$2',$sHtml);
$sHtml=preg_replace("/[email]s*([sS]+?)s*[/email]/i",'$1',$sHtml);
$sHtml=preg_replace("/[emails*=s*([^]s]+?)s*]s*([sS]+?)s*[/email]/i",'$2',$sHtml);
$sHtml=preg_replace("/[quote]([sS]*?)[/quote]/i",'
$1
',$sHtml);
$sHtml=preg_replace("/[code]([sS]*?)[/code]/i",'$1',$sHtml);
function getFlash($match)
{
$w=$match[1];$h=$match[2];$url=$match[3];
if(!$w)$w=550;if(!$h)$h=400;
return '';
}
$sHtml=preg_replace_callback("/[flashs*(?:=s*(d+)s*,s*(d+)s*)?]([sS]+?)[/flash]/i",'getFlash',$sHtml);
function getMedia($match)
{
$w=$match[1];$h=$match[2];$play=$match[3];$url=$match[4];
if(!$w)$w=550;if(!$h)$h=400;
return '';
}
$sHtml=preg_replace_callback("/[medias*(?:=s*(d+)s*,s*(d+)s*(?:,s*(d+)s*)?)?]([sS]+?)[/media]/i",'getMedia',$sHtml);
function getTable($match)
{
$w=$match[1];$b=$match[2];
$str='if($w)$str.=' width="'.$w.'"';
if($b)$str.=' bgcolor="'.$b.'"';
return $str.'>';
}
$sHtml=preg_replace_callback("/[table(?:s*=s*(d{1,4}%?)s*(?:,s*([^]]+)s*)?)?]/i",'getTable',$sHtml);
function getTR($match){return '';}
$sHtml=preg_replace_callback("/[tr(?:s*=(s*[^]]+))?]/i",'getTR',$sHtml);
function getTD($match){
$col=$match[1];$row=$match[2];$w=$match[3];
return '1?' colspan="'.$col.'"':'').($row>1?' rowspan="'.$row.'"':'').($w?' width="'.$w.'"':'').'>';
}
$sHtml=preg_replace_callback("/[td(?:s*=s*(d{1,2})s*,s*(d{1,2})s*(?:,s*(d{1,4}%?))?)?]/i",'getTD',$sHtml);
$sHtml=preg_replace("/[/(table|tr|td)]/i",'',$sHtml);
$sHtml=preg_replace("/[*]([^[]+)/i",'
  • $1
  • ',$sHtml);
    function getUL($match)
    {
    $str='if($match[1])$str.=' type="'.$match[1].'"';
    return $str.'>';
    }
    $sHtml=preg_replace_callback("/[list(?:s*=s*([^]]+)s*)?]/i",'getUL',$sHtml);
    $sHtml=preg_replace("/[/list]/i",'',$sHtml);
    return $sHtml;
    }
    ?>

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/364726.htmlTechArticle烈 16 火 84 网(LieHuo 24 .Net)教 17 程 最近给下载栏目增设一键转帖功能,烈火下载栏目是使用DedeCMS构建的,大家都知道dede没有一键转帖功能,...
    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Previous article:cakephp 与 mongodb 集成教程_PHP教程Next article:阻止网页被用户频繁刷新_PHP教程

    Related articles

    See more