<?php
abstract
class
CFilter
{
public
static
$varType
=
array
(
'GET'=> INPUT_GET,
'POST'=> INPUT_POST,
'COOKIE'=> INPUT_COOKIE,
'SERVER'=> INPUT_SERVER,
'ENV'=> INPUT_ENV
);
public
static
$filterType
=
array
(
'STRING'=>FILTER_SANITIZE_STRING,
'INT'=>FILTER_VALIDATE_INT,
'BOOLEAN'=>FILTER_VALIDATE_BOOLEAN,
'FLOAT'=>FILTER_VALIDATE_FLOAT,
'REGEXP'=>FILTER_VALIDATE_REGEXP,
'URL'=>FILTER_VALIDATE_URL,
'EMAIL'=>FILTER_VALIDATE_EMAIL,
'IP'=>FILTER_VALIDATE_IP,
);
private
static
function
lists()
{
return
filter_list();
}
public
static
function
filterType(
$type
)
{
$filter_list
= self::lists();
return
array_search
(
$type
,
$filter_list
) !== false ? true : false;
}
private
static
function
getVarType(
$setVarType
)
{
$setVarType
=
strtoupper
(
$setVarType
);
return
isset(self::
$varType
[
$setVarType
]) ? self::
$varType
[
$setVarType
] : null;
}
private
static
function
getFilterType(
$setFilterType
)
{
$setFilterType
=
strtoupper
(
$setFilterType
);
return
isset(self::
$filterType
[
$setFilterType
]) ? self::
$filterType
[
$setFilterType
] : null;
}
public
static
function
VarExists(
$setVarType
,
$varName
)
{
$FilterVarType
= self::getVarType(
$setVarType
);
if
(
is_null
(
$FilterVarType
))
return
false;
return
filter_has_var(self::
$varType
[
$FilterVarType
],
$varName
);
}
public
static
function
FilterInput(
$setVarType
,
$varName
,
$filterType
= 'INT')
{
$FilterVarType
= self::getVarType(
$setVarType
);
$filterType
= self::getFilterType(
$filterType
);
if
(
is_null
(
$FilterVarType
) ||
is_null
(
$filterType
))
return
false;
return
filter_input(
$FilterVarType
,
$varName
,
$filterType
);
}
public
static
function
FilterVar(
$var
,
$filterType
)
{
$filterType
= self::getFilterType(
$filterType
);
return
filter_var(
$var
,
$filterType
);
}
public
static
function
String(
$var
)
{
return
self::FilterVar(
$var
,'STRING');
}
public
static
function
Int(
$var
)
{
return
self::FilterVar(
$var
,'INT');
}
public
static
function
Boolean(
$var
)
{
return
self::FilterVar(
$var
,'INT');
}
public
static
function
Float(
$var
)
{
return
self::FilterVar(
$var
,'FLOAT');
}
public
static
function
Regexp(
$var
,
$option
)
{
$filterType
= self::getFilterType(
$filterType
);
return
filter_var(
$var
,
$filterType
,
$option
);
}
public
static
function
Url(
$var
)
{
return
self::FilterVar(
$var
,'URL');
}
public
static
function
Email(
$var
)
{
return
self::FilterVar(
$var
,'EMAIL');
}
public
static
function
Ip(
$var
)
{
return
self::FilterVar(
$var
,'IP');
}
}