sanitizer
1.0.0
消毒剤は、依存関係のないシンプルでスタンドアロンのPHP消毒剤ライブラリです。
Composerを使用してインストールして更新します。
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 ' ,
)SanitizerRegistryを使用して、カスタム消毒剤クラスを追加することもできます。
<?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
バグレポートまたはプルリクエストは大歓迎です。