機能
PHP 一般検出機能セット http://wb.josetech.com/userHome/4/jaxp/add-ons/news/13/20020828/51.html
公開時間: 2002-08-28 17:52:33 ニュースソース:
//[警告]: 無断で改変しないでください
//-------------------------- -- ------------------------------------------------ -- -----
----------
//-------------------------------- -- ------------------------------------------------ -
-------
//
// [ファイル名]: c_check.inc
// [機能]: 汎用検出関数セット
// [作成者]: Tianhui
//
// [ 最終日変更]: 2001/05/11[cxx]
// [変数定義規則]: 'C_'=文字型、'I_'=整数型、'N_'=数値型、'L_'=ブール型、'A_ '=番号
グループタイプ
//-------------------------------------- -- ------------------------------------------------
- ---- --
//---------------------------------------------------------- ------- -------------------------------------
----- -
// ※ CheckMoney($C_Money) はデータが
99999.99 形式かどうかを確認します
// ※CheckEmailAddr($C_mailaddr) は有効なメールアドレス
アドレスかどうかを判断します
// ※CheckWebAddr($C_weburl) は有効なメールアドレスであるかどうかを判断しますは有効なURLです
// ※CheckEmpty($ C_char)は文字列が空かどうかを判定します
// ※CheckLengthBetween($C_char, $I_len1, $I_len2=100)は指定された長さ内の文字列であるか判定します
// ※ CheckUser($C_user)は正規のユーザー名かどうかを判定します
// ※CheckPassword($C_passwd)は正規のユーザーパスワードであるかどうかを判定します
コード
// ※CheckTelephone($C_telephone)は正規の電話番号であるかどうかを判定します
code
// ※CheckValueBetween($N_var, $N_val1, $N_val2)
一定範囲内の正当な値かどうかを判断します
// ※CheckPost($C_post) は正当な郵便番号(固定長)かどうかを判断します
// ※CheckExtendName($C_filename,$A_extend)でアップロードファイルの拡張子を決定します
// ※CheckImageSize($ImageFileName,$LimitSize) アップロードした画像のサイズを確認します
// ※AlertExit($C_alert,$I_goback=0) ) 不正操作警告と終了
// ※Alert($C_alert,$I_goback=0) 不正操作警告
// ※ReplaceSpacialChar($C_char) 特殊文字置換関数
// ※ExchangeMoney($N_money) 資金換算関数
/ / ※PHP の WindowLocation($C_url,$C_get="",$C_getOther="") ウィンドウ .location
function
//--------------------- ----------------------------------------------------- -----------------
------
//--------------------- ------------------------ ---------------------------- ---------------
------
// 関数名: CheckMoney($C_Money)
// 関数: データが 99999.99 形式であるかどうかを確認します
// パラメータ: $C_Money (検出対象の数値)
// 戻り値: ブール値
// 備考: なし
//---- -------------------- ------------------------------ -------------------- ---------
------
関数 CheckMoney($C_Money)
{
if (! ereg("^[0-9][.][0-9]$", $ C_Money)) false を返す
true を返す
//--------------- --------- -------------------------------------- -------- ---------
----------
//--------------- ---------- -------------------------------------- ---------- -----
------
// 関数名: CheckEmailAddr($C_mailaddr)
// 機能: 有効なメールアドレスかどうか判定
// パラメータ: $C_mailaddr (検出対象のメールアドレス)
// 戻り値: ブール値
// 備考: なし
//-------------------------- --------- -------------------------------------- --------
------
function CheckEmailAddr($C_mailaddr)
{
if (!eregi("^[_a-z0-9-]+(.[_a-z0- 9-]+)*@[a- z0-9-]+(.[a-z0-9-]+)*$",
$C_mailaddr))
//(!ereg("^[_a-zA -Z0-9-]+(.[ _a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$ ",
$c_mailaddr))
{
false を返す
}
true を返す
//--------------- ---------- -------------------------------------- -------
-- -----
//---------------------------- -------- ------------------------------------------ ---
---- ---
// 関数名: CheckWebAddr($C_weburl)
// 関数: 有効なURLかどうかを判定
// パラメータ: $C_weburl (検出対象のURL)
// 戻り値: ブール値
/ / 備考:なし
// --------------------------------------------------- --- ------------------------------------------
--- ---
関数 CheckWebAddr($C_weburl)
{
if (!ereg("^http://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)* $", $C_weburl))
{
false を返す
}
true を返す
//--------------- --- ---------------------------------------------- --- ----
------
//-------------------------------- - ------------------------------------------------- - --
----------
// 関数名: CheckEmpty($C_char)
// 関数: 文字列が空かどうかを判定
// パラメータ: $C_char (検出する文字列)
// 戻り値: ブール値
// 備考: なし
//------------------------------------------------ ----------------------------------
------
関数 CheckEmptyString($C_char)
{
if (!is_string($C_char)) return false; //文字列型かどうか
if (empty($C_char)) return false; //設定されているかどうか
if ($C_char=='') return false; // true を返しますか?
//--------------------------------- --------------------------------------------------
------
//-------------------------------------- -- -----------------------------------------------
-- -- ---
// 関数名: CheckLengthBetween($C_char, $I_len1, $I_len2=100)
// 関数: 指定された長さ以内の文字列であるかを判定
// パラメータ: $C_char (文字列検出済み)
// $I_len1 (対象文字列長の下限)
// $I_len2 (対象文字列長の上限)
// 戻り値:ブール値
// 備考:なし
//--- ----- -------------------------------------- ----- ------------------------
------
関数 CheckLengthBetween($C_cahr, $I_len1, $I_len2 =100)
{
$C_cahr = trim($C_cahr);
if (strlen($C_cahr) <$I_len1) return false;
if (strlen($C_cahr) > $I_len2) return true; ;
}
/ /------------------------------------------ ----- ----------------------------------
-----
// ---------------------------------------------------- ---- -----------------------------
------
// 関数名: CheckUser($C_user )
/ / 関数: 正当なユーザー名かどうかを判定します
// パラメーター: $C_user (検出対象のユーザー名)
// 戻り値: ブール値
// 備考: なし
//------ ---------------------------------------------------- ---- -----------------------
------
関数 CheckUser($C_user)
{
if (!CheckLengthBetween($ C_user, 4 , 20)) return false; //幅チェック
if (!ereg("^[_a-zA-Z0-9]*$", $C_user)) return false; //特殊文字チェック
return true; ;
}
//------------------------------------------ ---------- ------------------------------------
----------
//-- -------------------------------------- ------ -----------------------------
------
// 関数名: CheckPassword($C_passwd)
// 関数: 正規のユーザーパスワードかどうかを判定します
// パラメータ: $C_passwd (検出されるパスワード)
// 戻り値: ブール値
// 備考: なし
//-- ---------------------------------------------------- ------- ------------------------
------
関数 CheckPassword($C_passwd)
{
if (!CheckLengthBetween($C_passwd, 4, 20)) return false; //幅検出
if (!ereg("^[_a-zA-Z0-9]*$", $C_passwd)) return false;特殊文字の検出
true を返す
}
//-------------------------------------- -------------------- ------------------------------ -------
------
//- ----------------------------- ------------------- ------------------------------- -
------
// 関数名: CheckTelephone($C_telephone )
// 関数: 正規の電話番号かどうかを判定
// パラメータ: $C_telephone (検出する電話番号)
// Return値: ブール値
// 備考: なし
//------ ----------------------------- ------------------- ------------------------
---- --
関数 CheckTelephone($C_telephone)
{
if (!ereg(" ^[+]?[0-9]+([xX-][0-9]+)*$", $C_telephone)) return false;
true を返す
}
//------------------------------------- --------------------------------------
----- -
//---------- ---------------------------------- ---------------- -----------------------
------
// 関数名前: CheckValueBetween($N_var, $N_val1, $N_val2)
// 関数: 特定の範囲内の正当な値であるかどうかを判定します
// パラメータ: $N_var 検出する値
// $N_var1 の上限検出する値
// $N_var2 検出する値の下限
// 戻り値: Boolean 値
// 備考: なし
//-------------- ------------------------ ------------------------ ------------------------
------ -
関数 CheckValueBetween($N_var, $N_val1, $N_val2)
{
if ( $N_var < $N_var1 ││ $N_var >
{
false を返す
}
//----------------- --------------------------------- ------------------- ---------------
------
//-- -------------------- ------------------------------ -------------------- -----------
------
// 関数名: CheckPost($C_post)
// 機能: 有効な郵便番号(固定長)かどうかを判定
// パラメータ: $C_post (確認する郵便番号)
// 戻り値: ブール値
// 備考: なし
//----- ------- -------------------------------- ------------------ ----------
------
関数 CheckPost($C_post)
{
$C_post=trim ($C_post)
if (strlen($C_post) == 6)
{
if(!ereg("^[+]?[_0-9]*$",$C_post))
{
true を返す ;
return false;}
}else
{
return false;;
}
}
//---------------------------- --- ----------------------------------------------- -
- -----
//--------------------- -------- --------------------------------------
----- -----
//関数名: CheckExtendName($C_filename,$A_extend)
// 関数: アップロードされたファイルの拡張子を決定します
// パラメーター: $C_filename アップロードされたファイル名
// $A_extend に必要な拡張子
// 戻り値: ブール値
/ / 備考: なし
//-------------------------------- ----------- --------------------------------------
----------
関数 CheckExtendName ($C_filename,$A_extend)
{
if(strlen(trim($C_filename)) < 5)
{
return 0; //0 を返す場合は、画像がアップロードされていないことを意味します
}
$lastdot = strrpos($C_filename) , "."); //最後に出現した位置を取得します
$extended = substr($C_filename, $lastdot+1); //拡張子を取得します
for($i= 0;$i
{
if (trim(strto lower($extended)) == トリム(strto lower($A_extend[$i]))) //大きい
小文字を変換して検出
{
$flag=1 ; //成功フラグを追加します
$i=count($A_extend); //検出された場合は検出を停止します
}
}
if($flag<>1)
{
for($j=0;$j< count($A_extend);$j++) //アップロードが許可されている拡張機能の種類をリストします
{
$alarm .= $A_extend[$j]." ";
}
AlertExit('Only '.$alarm.'ファイルをアップロードできるようになりました!アップロードしたのは '.$extended.' タイプのファイルです。);
return -1; //アップロードされた画像のタイプが要件を満たしていないことを意味します
} //return 1; 1 は、画像のタイプが要件を満たしていることを意味します
}
//--------------------------------- ----------- --------------------------------------------
- -----
/ /----------------------------------------------------- --------- ----------------------------------
------
// 関数名: CheckImageSize( $ImageFileName,$LimitSize)
// 関数: アップロードされた画像のサイズを確認する
// パラメーター: $ImageFileName アップロードされた画像の名前
// $LimitSize 必要なサイズ
//戻り値: ブール値
// 備考: なし
//-------------------------------------- ------------ ----------------------------------
--- ---
関数 CheckImageSize($ImageFileName, $LimitSize)
{
$size=GetImageSize($ImageFileName);
if ($size[0]>$LimitSize[0] ││ $size[1]>$ LimitSize[1])
{
AlertExit( '画像サイズが大きすぎます');
return false
}
//---------------- ---------- -------------------------------------- ---------- ------
----------
//--------------------- ------------------------ -------------------------------------------- ------------- --
----------
// 関数名: Alert($C_alert,$I_goback=0)
// 関数: 不正操作警告
//パラメータ: $C_alert (プロンプトエラーメッセージ)
// $I_goback (そのページに戻る)
// 戻り値: 文字列
// 備考: なし
//-------------- ---------------------------------------------------- ------- ---------
------
関数 Alert($C_alert,$I_goback=0)
{
if($I_goback<>0)
{
echo "<script>alert('$C_alert');history.go($I_goback);</script>";
}
else
{
echo "<script>alert('$C_alert'); </script>" ;
}
}
//-------------------------------------- ------------ -------------------------------------- --
------
//------------------------------------- ------------ --------------------------------------------
------
//-- -------------------------------------- ----------- -----------------------------
------
// 関数名: AlertExit($C_alert, $I_goback=0)
// 関数: 不正な操作の警告
// パラメータ: $C_alert (エラーメッセージが表示されます)
// $I_goback (そのページに戻ります)
// Return値:文字列
// 備考:なし
//-------------------------------------- ------- -------------------------------------
----- -
function AlertExit( $C_alert,$I_goback=0)
{
if($I_goback<>0)
{
echo "<script>alert('$C_alert');history.go($I_goback); </script> ";
終了;
}
else
{
echo "<script>alert('$C_alert');</script>";
終了;
}
}
//-- ---------------------------------------------------- ---- ------------------------
------
//-------- -------------------------------------------------- -- ------------
------
// 関数名: ReplaceSpacialChar($C_char)
// 関数: 特殊文字置換関数
// パラメータ: $C_char (置換される文字列)
// 戻り値: 文字列
// 備考: なし
//-------- -------------------------------------------------- --------------
------
関数 ReplaceSpecialChar($C_char)
{
$C_char=HTMLSpecialChars($C_char); //特殊文字を HTML 形式に変換します。
$C_char=nl2br($C_char); //キャリッジリターンを
に置き換えます$C_char=str_replace(" "," ",$C_char); //スペースを
$C_char=str_replace(" < ? ","< ?",$C_char); //PHP タグを置換します
return $C_char;
//---------------------- ---------------------------------------------------- ---- -------------
------
//--------------------- --- --------------------------------------------------- --- ---------
----------
// 関数名: ExchangeMoney($N_money)
// 関数: 資金換算関数
// パラメータ: $N_money (変換される)
// 戻り値: String
// 注: この関数の例: $char=ExchangeMoney(5645132.3155) ==>
$char='¥5,645,132.31'
//-------- -------------------------------------------------- -- -----------------------
------
関数 ExchangeMoney($N_money)
{
$A_tmp=explode("." ,$ N_money ); //数値を小数点に従って 2 つの部分に分割し、配列に格納します $A_tmp
$I_len=strlen($A_tmp[0]); //前にある桁の幅を測定します小数点
if($I_len%3 ==0)
{
$I_step=$I_len/3; //前の桁の幅 mod 3 = 0 の場合、$I_step
part
に分割できます}else
{
$step=($len-$ len%3)/3+1; //前の桁の幅が 3 != 0 の場合、それを押して $I_step
part+ に分割できます1
}
$C_cur="";
//小数点以下の数値を変換
while($I_len<>0)
{
$I_step--; =0)
{
$C_cur .= substr($A_tmp[0],0,$ I_len-($I_step)*3);
}else
{
$C_cur .= substr($A_tmp[0],0); ,$I_len-($I_step)*3).",";
}
$ A_tmp[0]=substr($A_tmp[0],$I_len-($I_step)*3); ($A_tmp[0]);
}
//小数点以下の数値を変換する
if($A_tmp[1]=="")
{
$C_cur .= ".00";
{
$I_len=strlen($A_tmp[1]);
if($I_len{
$C_cur .= ".".$A_tmp[1]."0"; $C_cur .= ".".substr($A_tmp[1],0,2);
}
}
//人民元記号を追加して送信
$C_cur="¥".$C_cur; C_cur;
}
//-------------------------- ---------------------------- -------------------- ------------------
----------
/ /----------------- ----------------------------- ------------------- ---------------
------
// 関数名: WindowLocation($ C_url,$C_get="",$C_getOther="")
// 関数: PHP の window.location 関数
// パラメーター: $C_url ウィンドウにリダイレクトする URL
// $C_get GET メソッドのパラメーター
// $ C_getOther GETメソッドのその他のパラメータ
// 戻り値: String
// 備考: なし
//------------------------------------- ------------------------ ------------------------ ---------
-----
function WindowLocation($C_url,$ C_get="",$C_getOther="")
{
if($C_get == "" && $C_getOther == "")
if($C_get == "" && $C_getOther <> ""){ $C_target=""window.location='$C_url?
$C_getOther='+this.value"";}
if($C_get <> "" && $C_getOther == ""){$C_target=" "window.location='$C_url?
$C_get'"";}
if($C_get <> " " && $C_getOther <> ""){$C_target=""window.location='$ C_url?
$C_get&$C_getOther='+this.value"";}
return $C_target;
}
// ------------------------ ------------------------ ----------------------- ----------
-----
?>