ホームページ > php教程 > php手册 > PHP操作ubbコードクラス

PHP操作ubbコードクラス

WBOY
リリース: 2016-06-21 09:05:52
オリジナル
1039 人が閲覧しました

ウブ

//ubbcode class
class ubbcode
{
var $nest; // デバッグ用の再帰の深さ
// 処理できるタグと処理関数のテーブル
var $tags = array(
'url ' => ; '$this->url',
'email' => '$this->email',
'mail' => フォールトトレランス用, [mail] そして同様に
'img' => '$this->img', 'b' => ,
'u' => '$this->simple', 'tt' => 'ストライク' => '$this->シンプル'、
'h1' => '$this->シンプル'、
'h2' => '$this->シンプル'、
'h3 ' => '$this->シンプル'、
'h4' => '$this->シンプル'、
'h5' => '$this->シンプル'、
'h6' = > ; '$this->シンプル'、
'sup' => '$this->シンプル'、
'サブ' => 'em' => $this->simple'、
'strong' => '$this->simple'、
'code' => '$this->simple'、
'small' => '$ this ->シンプル'、
'ビッグ' => '$this->シンプル'、
'ブリンク' => '$this->シンプル'、
'フライ' => ;フライ'、
CSSStyle',
'blur' => CSSStyle ',
'wave' => '$this->CSSStyle',
'sub' => >シンプル' 'sup' => '$this->シンプル'、
'サイズ' => '$this->サイズ'、
'フェイス' => '$this->フェイス' ,
'font' => '$this->face', // フォールトトレランスの場合、[font] と [face] は同等です
'color' => '$this->color',
'html ' = > '$this->html'、
'引用' => '$this->引用'、
'swf' => '$this->swf'、
'アップロード' = > '> upload'); ***************************** ******************** *************
* ユーザーが入力したメールの簡単なチェックを実行します ,
* * ユーザーのメール文字列に @ 文字が含まれているかどうかを確認します ,
* * 英語の文字があります@ 文字の前に数字または数字があり、その後に数字の文字列が続きます。
* 最後の小数点の後に英字は 2 文字または 3 文字のみです。
* * super@mail.wilson.gs はチェックをパスできますが、super@mail.wilson はチェックをパスできません
************************ ** **********************************************/
関数 emailcheck ($str)

if (eregi ("([a-z0-9-]+([.][a-z0-9-]+)+)", $str, $er_arr ))

n", $er_arr[0]);
printf ("1. %s
n", $er_arr[1]);
printf ("2. % s
n", $er_arr[2]);
printf ("3. %s
n", $er_arr[3]);
printf ("4. %s < ;br/ > ImgURL($str)
{ H if ($ this-& gt; checkurl ($ str)) {
if (EREGI (". (JPEG | JPG | GIF | BMP | PNG | PCX | TIFF | TGA) | LWF) $")
true を返す;
false を返す。 if (!eregi("^(ftp|http|https |mms|gopher|finger|bbs|telnet):(//|\\)", $ str $ 'http://'.$ str; ($ str); $ ret = ''; %= _+"']+)?]、$ parse、$ ergi_arr);break; >", $eregi_arr[1]); 2]); ); // 開始位置
2 = substr($parse, 0, $pos );// タグの前
$ret .'[ '.$tag_start.']'
ereg("[(/".$tag .")]", $eregi_arr, );

// 対応する終了タグがありません
[ 1】 ) または ($tag=="url") または ($tag=="email") または ($tag=="img")))){
$value= $this->parse ($value) ;
$ret.= $parse2 ); ************************* *
* [b] が になるのと同様の単純な置換です。    * 标签内容不便,只是代替枠号です<>
************************************************ ****/
function simple($start, $para, $end, $value){
if (strlen($para) > 0)
return sprintf("[%s%s]%s[%s ]"、$start、$para、$value、$end);
else
return sprintf("<%s>%s<%s>", $start, $value, $end);
}
/*************************************************** * *
* 以下は「http://」なしで正当とみなされます。ftp は自分で「ftp://」を追加する必要があります
* 93611
*
* http://www.fogsun.com
****** * *********************************************/
関数url($start, $para, $end, $value){
$sA= $value;
$sURL= substr(trim($para), 1);
if (strlen($sURL) > 0)
{
if (strlen($value) == 0)
$sA= $sURL;
}
else
{
$sURL=rim($value);
}
$sURL= $this->formatURL($sURL);
if($this->checkURL($sURL))
return "$sA";  
else {
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);
}
}
/*************************************************** * *
* 以下は「mailto:」ヘッダーなしで正当とみなされます
* [email=pazee@21cn.com]pazee
*
* pazee@21cn.com
*********** ****************************************/
関数 email($start, $para, $end, $value){
$sA= $value;
$sURL= substr(trim($para), 1);
if (strlen($sURL) > 0)
{
if (strlen($value) == 0)
$sA= $sURL;
}
else
{
$sURL=rim($value);
}
//if (strto lower(substr($sURL, 0, 7)) != "mailto:")
$sURL= "mail.php?email=". $sURL;  
if($this->emailcheck(substr($sURL, 15)))
return "$sA";  
else
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);
}
/*************************************************** * *
* * 以下の使用法は合法とみなされます
* *
************ ***** ************************************/
function img($start, $para, $end, $value){
$sURL= substr(trim($para), 1);
if (strlen($sURL) $sURL=rim($value);
        //$sURL= $this->formatURL($sURL);
if ($this->checkImgURL($sURL))
return sprintf("从新窗口中浏览", $sURL,$sURL);  
else
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);
}
/*************************************************** * *
* * 文字列は右から左に循環的に移動します
* * パラメーターなし
* * HTML の に相当します
******************** **** *******************************/
function fly($start, $para, $end, $value){
if (strlen($para)>0) // パラメータあり
return sprintf("[ %s%s]%s[%s]"、$start、$para、$value、$end);
else
return ''.$value.'';  
}
/*************************************************** * *
* 文字列を前後に移動します
* パラメーターなし
* HTML の に相当します
************************* * **************************/
function move($start, $para, $end, $value) {
if (strlen($para)>0) // パラメータあり
return sprintf("[ %s%s]%s[%s]"、$start、$para、$value、$end);
else
return ''.$value.'';  
}
/*************************************************** * *
* * キャラクターのハロー効果にはグロー、シャドウ、ブラーが含まれます
* キャラクターのハロー効果 [glow=a,b,c] または [shadow=a,b,c]
* 3 つのパラメーターでデフォルトを許可します
* テキストのシャドウ効果を実装します,
* グロー、シャドウ、ブラーのプロパティは、順に色、幅、境界線サイズです
* 波のプロパティは、順に変形周波数、幅、境界線サイズです
************** **************************************/
function CSSStyle(&$start, &$para, &$end, &$value){
$rets= sprintf("[%s%s]%s[%s ]"、$start、$para、$value、$end);
if (strlen($para)==0)
{
$para="=,,";
}
if (eregi("^=([#]?[[:xdigit:]]{6}|[a-z0-9]*),([0-9]*),([0-9 ]*)", $para, $er_arr))
{
$color= ($er_arr[1] != "") ? $er_arr[1] : 赤;   // デフォルトの色
$width= ($er_arr[2] != "") ? $er_arr[2] : 400;   // デフォルトの幅
$border= ($er_arr[3] != "") ? $er_arr[3] : 5;     // デフォルトの境界線
switch ($start)
{
case "glow":
case "shadow":
$rets= sprintf("%s"、$start、$color、$border、$width、$value);
休憩。
ケース「ぼかし」;
$rets= sprintf("%s", $start, $border, $color、$width、$value);
休憩。
            case "wave":
$color= ($er_arr[1] != "") ? $er_arr[1] : 4;   // デフォルトの色
$border= ($er_arr[3] != "") ? $er_arr[3] : 2;     // デフォルトの境界線
$rets= sprintf("%s", $start 、$color、$border、$width、$value);
休憩。
}
}
return $rets;
}
/*************************************************** * *
* フォントの色 xxx
* n は #xxxxxx または xxxxxx (6 桁の 16 進数) です
* Red、greed、blue、black などの色の予約語も有効です
* HTML の xxx
* [color]xxxx[/color] は [color=red] と同等です
********************* *******************************/
関数 color($start, $para, $end, $value){
$cl= strto lower(substr($para, 1));
if ($cl == "")
$cl= "red";
if (eregi("(^[#]?[[:xdigit:]]{6})|赤|緑|青|黄|青|白|グレー|茶色|銀|紫|オレンジ" ,$cl) )
return sprintf("%s",$cl, $value);
else
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);
}
/*************************************************** * *
* * フォント サイズ xxx 1<= n <= 7;
* * HTML の xxx に相当します *********** * ***************************************/
関数 size($start, $para, $end, $value){
$size= substr($para, 1);
if ($size >=1 && $size return sprintf("%s",$サイズ、$value);
else
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);
}
/*************************************************** * *
* * フォント名 [face=n] n フォント名、引用符は必要ありません
* * HTML の xxx に相当します
*********** ** ***************************************/
function face($start, $para, $end, $value){
$fn= substr($para, 1);
if (!eregi("[[:punct:]]", $fn) && strlen($para) > 1) {
switch (strtoupper($fn))
{
case "ST": $fn = "宋体";
休憩。
case "HT":
$fn= "黑体";
休憩。
ケース "KT":
$fn= "楷体_GB2312";
休憩。
ケース「FT」:
              $fn= "仿夏_GB2312";
休憩。
case "YY":
$fn= "幼圆";
休憩。
ケース "LS":
$fn= "隶书";
休憩。
case "XST":
$fn= "新宋体";
休憩。
デフォルト:
$fn= substr($para, 1);
}
return sprintf("%s",$fn, $value);
}
else
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);
}
/*************************************************** * *
* ファイルアップロード [upload]
*************************************** * ************/
関数アップロード($start, $para, $end, $value){
$fn= トリム(substr($para, 1));
if (!eregi("[[:punct:]]", $fn) && strlen($para) > 1) {
if (eregi("jpg|jpeg|bmp|gif|png", $fn) ) {
if ($this->checkImgURL($value))
return sprintf(" 此主题相关图片如下:< br> ;
从新窗口中浏览< /a>
",$fn,$value,$value);
else
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);    
} elseif ($fn == "swf") {
return sprintf("
此主题相关Flash:
全屏欣赏 (点右键->另存可将アニメーション下劣)
",$ fn,$value,$value);
} elseif (eregi("rar|zip|doc", $fn)) {
return sprintf(" 点击ダウンロードこちら主题相关付属品
",$fn,$value);
}
} else
return sprintf("[%s%s]%s[%s]", $start, $para, $value, $end);            
}
/********************************************* *******
* デバッグコードタグ [html]
****************************************** ***********/
function html($start, $para, $end, $value)

{
if (strlen($value) > 0) {
$value = eregi_replace( '', "", $value);
return sprintf("
%s
}
}
/*************************************************** * *
* 引用タグ【引用】
*************************************** * ************/
function quote($start, $para, $end, $value )
{(If ($ 値) & gt; 0) {
Return Sprintf ("& lt; table width =" 100 %% "align = center border = 1 borderColor ="#Aaaaaaa "& GT; & LT; r bgcolor = "#EAEAEA">以下は引用です:
&lt; font color = "#000066"&gt;%s&lt;/font&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt; br&gt; "、$ value); [%s]", $start, $value, $end);
}
}
/*************************************************** *
* FLASH[swf]
***************************************** ***********/
function swf($start, $para, $end, $value)

{
( if ($ 値) & gt; 0) {

Return Sprintf ("& lt; br & gt; & lt; center & lt; パラメータ名 = 再生値 = true & gt; & lt; ; パラメータ名 = ループ値= TRUE & GT;
全画面表示< /a> (右クリック>アニメーションをダウンロードできるので別) ", $ value, $ value); s]", $ start, $value, $end);

}

}

}

?





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート