CrashX
В прошлом XSiteCMS
- Регистрация
- 6 Июн 2008
- Сообщения
- 681
- Реакции
- 114
- Автор темы
- #1
И так попробую объяснить что мне нужно на примере
есть класс в которм содержатся следующие свойства, они же являются именами полей в СуБД, которые служат для быстрой генерации запросов и обработка данных, методы не важны тк там идет математический расчет и представление данных, важны лишь свойства (переменные класса)
такие переменные присуствуют в большом колличестве в каждом модуле иногда полей по 20, и фильтрация каждого в отдельности это большая сложность в плане большого колличества однообразного кода
получение наддых происходит по схеме
я опустил создание экземпляров, думаю и так понятно по именам, тк у меня они зодаются в специфичной форме и вызов их так же придется долго объяснять))
и так мы получили данные с формы
далее есть функции начиная с версии 5.2
в которых можно делать фильтрацию сдледующим методом
заводим массив элементов соотвествующий именам элементов фильтруемого массива, в которм указываем дириктивами как нужно фильтровать!
пример
благодарая данному намассиву $filerz к указанным элементам массива будут применены указанные фильтры а к остальным фильтр стандартный фильтр))
и так суть данного вопроса такова что нужно реализовать подобные механизм для фильтрации данных в подобном виде в желательно с возможностью вызова указанных пользовательских функций или дикертив которые смогут реализовать что то подобное)
использование данного метода и функций не желательно тк они доступны только в php 5.2 и более новых версиях, что накладывает большие ограничения на хостинг!
если что то не понятно пожалуйста спрашивайте я постараюсь объяснить более понятно не которые моменты
есть класс в которм содержатся следующие свойства, они же являются именами полей в СуБД, которые служат для быстрой генерации запросов и обработка данных, методы не важны тк там идет математический расчет и представление данных, важны лишь свойства (переменные класса)
PHP:
/**
* Класс Переменных
*/
class Org
{
var $db=null;
var $table='organizacia';
var $org_f=array(
'id'=>false,
'short_name'=>false,
'full_name'=>false,
'tip'=>null,
'otdelen'=>null,
'plat_name'=>null,
'sthet_id'=>null,
'inn'=>null,
'kpp'=>null,
'ogrn'=>null,
'date_reg'=>null,
'code_ifns'=>null,
'name_ifns'=>null
'num_fss'=>null
);
/* МЕТОДЫ НИЖЕ и они не нужны тут*/
}
получение наддых происходит по схеме
PHP:
/**
* Класс Переменных
*/
class Variable
{
var $version=0.02;
function post($var=array())
{
foreach($var as $column=>$value):
$var[$column]=$_POST[$column];
endforeach;
unset($column);
unset($value);
return $var;
}
}
$org->org_f=$Variable->post($org->org_f);
и так мы получили данные с формы
далее есть функции начиная с версии 5.2
PHP:
filter_input_array() и filter_var_array()
заводим массив элементов соотвествующий именам элементов фильтруемого массива, в которм указываем дириктивами как нужно фильтровать!
пример
PHP:
$filerz=array(
'id'=> FILTER_VALIDATE_INT,
'short_name'=>вот тут мне нужно FILTER_VALIDATE_REGEXP но тут я низнаю как мне задать нужное регулярное выражение или как вызвать пользователькую финкцию вида $engine->is_str_sql() с одним входящим параметром,
'full_name'=>тоже самое что и ранее
);
$onfiltered=filter_var_array($ogr->org_f,$filerz);
и так суть данного вопроса такова что нужно реализовать подобные механизм для фильтрации данных в подобном виде в желательно с возможностью вызова указанных пользовательских функций или дикертив которые смогут реализовать что то подобное)
использование данного метода и функций не желательно тк они доступны только в php 5.2 и более новых версиях, что накладывает большие ограничения на хостинг!
если что то не понятно пожалуйста спрашивайте я постараюсь объяснить более понятно не которые моменты