Дезинфицирующее средство -это простая и автономная библиотека дезинфицирующих средств PHP без зависимостей.
Использует композитор для установки и обновления:
composer require "truongwp/sanitizer=*"
Дезинфицирующее средство требует PHP> = 5,3
<?php
$ sanitizer = new Truongwp Sanitizer Sanitizer ();
$ input = array (
' name ' => ' Foo bar ' ,
' age ' => ' 24 ' ,
);
$ rules = array (
' name ' => ' trim|strtolower|ucwords ' ,
' age ' => ' intval ' ,
);
$ output = $ sanitizer -> sanitize ( $ input , $ rules ); $output :
array (
' name ' => ' Foo Bar ' ,
' age ' => 24 ,
); Несколько правил могут быть приняты в виде строкового разделителя по | или используйте массив:
<?php
$ rules = array (
' name ' => array ( ' trim ' , ' strtolower ' , ' ucwords ' ),
' age ' => ' intval ' ,
);По умолчанию имя правила является функцией PHP. Таким образом, вы можете легко добавить пользовательскую функцию для дезинфекции.
<?php
function trim_slasses ( $ value ) {
return trim ( $ value , ' / ' );
}
$ sanitizer = new Truongwp Sanitizer Sanitizer ();
$ input = array (
' name ' => ' //foo ' ,
);
$ rules = array (
' name ' => ' trim_slasses ' ,
);
$ output = $ sanitizer -> sanitize ( $ input , $ rules );Результат:
array (
' name ' => ' foo ' ,
) Если вы хотите передать дополнительные параметры функции дезинфицирующего средства, вы можете добавить их, чтобы управлять именем и разграниченным образом : .
<?php
function prefix_suffix ( $ value , $ prefix = '' , $ suffix = '' ) {
return $ prefix . $ value . $ suffix ;
}
$ sanitizer = new Truongwp Sanitizer Sanitizer ();
$ input = array (
' name ' => ' foo ' ,
);
$ rules = array (
' name ' => ' prefix_suffix:prefix_:_suffix ' ,
);
$ output = $ sanitizer -> sanitize ( $ input , $ rules );Результат:
array (
' name ' => ' prefix_foo_suffix ' ,
)Вы также можете добавить пользовательский класс дезинфицирующих средств с помощью дезинфицирующего средства.
<?php
class DateFormatSanitizer implements Truongwp Sanitizer Contracts RuleSanitizer
{
/**
* Sanitize value.
*
* @param mixed $value Value need to sanitize.
* @return mixed
*/
public function sanitize ( $ value )
{
$ args = func_get_args ();
$ format = empty ( $ args [ 1 ]) ? ' Y-m-d ' : $ args [ 1 ];
$ timestamp = strtotime ( $ value );
return date ( $ format , $ timestamp );
}
}
// Register rule sanitizers.
Truongwp Sanitizer Registries SanitizerRegistry:: set ( ' date_format ' , new DateFormatSanitizer ());
$ sanitizer = new Truongwp Sanitizer Sanitizer ();
$ input = array (
' day ' => ' 05/30/2017 ' ,
);
$ rules = array (
' name ' => ' date_format:Y-m-d ' ,
);
$ output = $ sanitizer -> sanitize ( $ input , $ rules );Результат:
array (
' day ' => ' 2017-05-30 ' ,
)Автор: @truongwp
Отчеты об ошибках или запросы на привлечение приветствуются.