lie16火84网 (LieHuo24.Net) 先生 17Cheng は最近、ダウンロード列にワンクリック再投稿機能を追加しました。Liehuo のダウンロード列は DedeCMS を使用して構築されています。にはKey repost機能がないので、自分で書く必要があり、ようやく実現しました。ここにソフトウェア紹介の HTML to UBB コードを書き留めます。
ワンクリック再投稿デモ:
PHP で HTML を UBB コードに変換する問題については、著者がインターネットでいくつか見つけましたが、使いにくいため、自分で修正して整理しました。他に必要な場合は、以下にメッセージを残してください。 。
PHPコード:
クリップボードにコピー引用コンテンツ:
[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:
クリップボードにコピー引用コンテンツ:
[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",
"""
);
$strCodes = preg_replace($match, $replace, $strCodes );
$strCodes を返す
}
?>
コード 2:
クリップボードにコピー引用内容:[www.bkjia.com]
function ubb2html($sUBB)
{
$sHtml=$sUBB;
$sHtml=preg_replace("/",'<',$sHtml);
$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",'$1>',$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 を返す; } ?>
http://www.bkjia.com/PHPjc/364726.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/364726.html技術記事烈 16 火 84 网(LieHuo 24 .Net)教 17 程最近给下ダウンロード栏目增设一键转帖機能,烈火下載栏目是使用DedeCMS构建的,大家都知道dede没有一键转帖機能,...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31
|