vypsen/ sanitizer
PHP的sanitizer库
dev-master
2023-01-15 13:26 UTC
Requires
- php: ^8.0
- phpunit/phpunit: ^9
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-15 16:56:46 UTC
README
安装
composer require vypsen/sanitizer dev-master
过滤器
示例
use Vypsen\Sanitizer\Sanitizer; $jsonData = '{"arr": ["1", 2, "3"], "foo": "123", "bar": 123, "baz": "8 (950) 288-56-23", "qwe": {"123": "qwerty", "abc": 321}}'; $filters = [ "arr" => ['array', 'int'], "foo" => 'int', "bar" => 'string', "baz" => 'ru_number_phone', "qwe" => 'structure' ]; $data = Sanitizer::applySanitizers($jsonData, $filters); var_dump($data);
结果
[ 'arr' => [1, 2, 3], 'foo' => 123, 'bar' => '123', 'baz' => '79502885623', 'qwe' => ['123' => 'qwerty', 'abc' => 321], ];
测试
运行测试
./vendor/bin/phpunit ./vendor/vypsen/sanitizer/tests
自定义过滤器
对于自定义过滤器,您需要创建一个类,该类将实现Vypsen\Sanitizer\Interfaces\Filter接口。
示例
use Vypsen\Sanitizer\Interfaces\Filter; class TestClass implements Filter { public function sanitize($value, $option): string { return ucfirst($value); } public function validation($value): bool { return is_string($value); } public function errorMessageValid(): string { return 'value must be a string'; } }
应用过滤器
require_once('TestClass.php'); $jsonData = '{"arr": ["1", 2, "3"], "foo": "abs"}'; $filters = [ "arr" => ['array', 'string'], "foo" => TestClass::class, ]; $data = Sanitizer::applySanitizers($jsonData, $filters); var_dump($data);
结果
[ 'arr' => ['1', '2', '3'], 'foo' => 'Abs' ];