ウブ
//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 の