ホームページ  >  記事  >  バックエンド開発  >  PHP HTML コードを UBB フォーラムに変換する code_PHP チュートリアル

PHP HTML コードを UBB フォーラムに変換する code_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 14:53:37819ブラウズ

lie1684网 (LieHuo24.Net) 先生 17Cheng は最近、ダウンロード列にワンクリック再投稿機能を追加しました。Liehuo のダウンロード列は DedeCMS を使用して構築されています。にはKey repost機能がないので、自分で書く必要があり、ようやく実現しました。ここにソフトウェア紹介の HTML to UBB コードを書き留めます。

ワンクリック再投稿デモ:

PHP で HTML を UBB コードに変換する問題については、著者がインターネットでいくつか見つけましたが、使いにくいため、自分で修正して整理しました。他に必要な場合は、以下にメッセージを残してください。 。

PHPコード:

クリップボードにコピーLiehuo.Net Codes引用コンテンツ: [www.bkjia.com] $intro = $liehuo-net; // 取得した変数値は次のとおりです。
$intro = str_replace("n",'',$intro);
$intro = preg_replace("/]+HREF="([^"]+)"[^>] *>(.*?)/i","[url=$1]$2[/url]",$intro);
$intro = preg_replace("/(.*?)/i","[color=$2]$4[/ color]",$intro);
$intro = preg_replace("/]+)"(.*?)>(. *?)/i","[face=$2]$4[/face]",$intro);
$intro = preg_replace("/< ;font(.*?)size="([^ >]+)"(.*?)>(.*?)/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); ("/<([/]?)i>/i","[$1i]",$intro);
echo $intro; // 最後に UBB コードを取得します
?>
HTML から UBB への変換がわかったので、UBB は HTML を返すことができますか?オンラインで収集された以下のコードを参照してください。

コード 1:

クリップボードにコピー引用コンテンツ: Liehuo.Net Codes[www.bkjia.com] function ubb2html($strCodes) {
$match = array(
"%[b](.*?)[/b]%si",
"%[center](.*?)[/センター]%si",
"%[url](.*?)[/url]%si",
"%[url=(.*?)](.*?)[/url]%si",
"%[img](.*?)[/img]%si",
"%[fieldset=(.*?)](.*?)[/fieldset]%si"

); = array(
"$1",
"
$1
",
"$1"$2",
""
$1
$2
"
);
$strCodes = preg_replace($match, $replace, $strCodes );

$strCodes を返す
}
?>
コード 2:
クリップボードにコピーLiehuo.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$sHtml=preg_replace("/[img]s*([sS]+?)s*[/img]/i",'',$sHtml);
関数 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',$ HTML);
$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);
関数 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);
関数 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);
関数 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);
    関数 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);
    $sHtml を返す;
    }
    ?>

    www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/364726.html技術記事烈 16 火 84 网(LieHuo 24 .Net)教 17 程最近给下ダウンロード栏目增设一键转帖機能,烈火下載栏目是使用DedeCMS构建的,大家都知道dede没有一键转帖機能,...
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    前の記事:cakephp 与 mongodb 集成教程_PHP教程次の記事:阻止网页被用户频繁刷新_PHP教程

    関連記事

    続きを見る