sanitizer
1.0.0
消毒剂是一个简单而独立的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
欢迎错误报告或拉动请求。