fernandozueet / php-sanitize
清理 PHP 值
Requires
- php: >=7.2
- laravel/helpers: ^1.3
Requires (Dev)
- phpunit/phpunit: 9.3
This package is auto-updated.
Last update: 2024-09-29 06:08:33 UTC
README
清理 PHP 值。
文档
- 要求
- 安装
- 使用模式 数组
- 使用模式 单个
- 使用模式 Laravel
- 自定义过滤器
- 过滤器 striptags
- 过滤器 cnpj
- 过滤器 cpf
- 过滤器 numeric
- 过滤器 alphanumeric
- 过滤器 alpha
- 过滤器 url
- 过滤器 email
- 过滤器 strtolower
- 过滤器 strtoupper
- 过滤器 ucwords
- 过滤器 ucfirst
- 过滤器 lcfirst
- 过滤器 rtrim
- 过滤器 ltrim
- 过滤器 trim
- 过滤器 date
- 过滤器 type
- 过滤器 numberFormat
- 过滤器 pregReplace
- 过滤器 filterVar
- 贡献
- 安全
- 鸣谢
- 许可证
要求
- PHP 7.3 或更高版本
- Composer
安装
使用 Composer 安装此包
composer require fernandozueet/php-sanitize
使用模式 数组
use FzPhpSanitize\Sanitize; //values array $data = [ 'title' => 'Test Test é 123', 'content' => "<a href=''>teste</a> <b>OK</b>", 'test' => "value test", 'date' => "01/06/1987", 'sub' => [ "sub1" => " TEST " ], ]; //rules sanitize $rules = [ 'title' => [Sanitize::strtolower(), Sanitize::alpha(true), Sanitize::strtoupper(), Sanitize::rtrim()], 'content' => [Sanitize::stripTags('<a>') ], 'date' => [Sanitize::date('Y-m-d')], 'sub.sub1' => [Sanitize::strtolower(), Sanitize::trim()], ]; //sanitize values $values = Sanitize::clear($data, $rules);
输出
{ "title": "TEST TEST", "content": "<a href=''>teste</a> OK", "teste": "value test", "date": "1987-06-01", "sub": { "sub1": "test" } }
使用模式 单个
use FzPhpSanitize\Sanitize; //sanitize $value = Sanitize::cpf()->clean('43740999055');
输出
437.409.990-55
使用模式 Laravel
Laravel 5.8 或更高版本
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use FzPhpSanitize\Sanitize; class ExampleRequest extends FormRequest { /** * Prepare the data for validation. * * @return void */ protected function prepareForValidation() { $rules = [ 'title' => [Sanitize::strtolower(), Sanitize::alpha(true), Sanitize::strtoupper(), Sanitize::rtrim()], 'content' => [Sanitize::stripTags('<a>') ], ]; $this->merge(Sanitize::clear($this->input(), $rules)); } /** * Determine if the user is authorized to make this request. * * @return bool */ public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return []; } }
自定义过滤器
1- 创建类过滤器
MyFilter.php <?php namespace Filters\MyFilter; // <<<<<<<<<-- Your namespace here use FzPhpSanitize\Contracts\Filter; use FzPhpSanitize\Filters\Filters; class MyFilter extends Filters implements Filter { /** * Filter strip tags. * Strip HTML and PHP tags from a string. * * @param string $value * @return string */ public function clean($value) { return is_string($value) ? strip_tags($value, $this->options[0] ?? null) : ""; } }
2- 在另一个 PHP 文件中创建函数以调用过滤器
MySanitizes.php <?php namespace YourNamespace; // <<<<<<<<<-- Your namespace here use Filters\MyFilter; class MySanitizes { /** * Filter strip_tags. * Strip HTML and PHP tags from a string. * * @param array|string $allowable_tags * @return MyFilter */ public static function myFilter($allowable_tags = ""): MyFilter { return new MyFilter($allowable_tags); } }
3- 使用过滤器
use YourNamespace\MySanitizes; //sanitize $value = MySanitizes::myFilter("<a>")->clean("<a href='#'>Link</a> <h1>Hello world!</h1>");
输出
<a href='#'>Link</a> Hello world!
过滤器
striptags
从字符串中删除 HTML 和 PHP 标签。
striptags(string $allowable_tags = "")
use FzPhpSanitize\Sanitize; $value = Sanitize::striptags("<a>")->clean("<a href='#'>Link</a> <h1>Hello world!</h1>");
输出
<a href='#'>Link</a> Hello world!
cnpj
格式化 CNPJ 格式的数字。
cnpj()
use FzPhpSanitize\Sanitize; $value = Sanitize::cnpj()->clean("54465939000150");
输出
54.465.939/0001-50
cpf
格式化 CPF 格式的数字。
cpf()
use FzPhpSanitize\Sanitize; $value = Sanitize::cpf()->clean("43740999055");
输出
437.409.990-55
numeric
数字。
numeric()
use FzPhpSanitize\Sanitize; $value = Sanitize::numeric()->clean("asdfg123456");
输出
123456
alphanumeric
从 a 到 z 的字母和数字。
alphanumeric(bool $spaces = false)
use FzPhpSanitize\Sanitize; $value = Sanitize::alphanumeric()->clean("!@#asdfg123456"); $value2 = Sanitize::alphanumeric(true)->clean("!@#asdfg 123 456");
输出
//value asdfg123456 //value2 asdfg 123 456
alpha
从 a 到 z 的字母。
alpha(bool $spaces = false)
use FzPhpSanitize\Sanitize; $value = Sanitize::alpha()->clean("123456asdfg*&("); $value2 = Sanitize::alpha(true)->clean("123456asd dfg*&(");
输出
//value
asdfg
//value2
asd dfg
url
filter_var FILTER_SANITIZE_URL
url()
use FzPhpSanitize\Sanitize; $value = Sanitize::url()->clean("https://php.ac.cn/manual/en/function.htmlentities.phpçù");
输出
http://php.ac.cn/manual/en/function.htmlentities.php
filter_var FILTER_SANITIZE_EMAIL
email()
use FzPhpSanitize\Sanitize; $value = Sanitize::email()->clean("çótest@test.com");
输出
test@test.com
strtolower
将字符串转换为小写。
strtolower()
use FzPhpSanitize\Sanitize; $value = Sanitize::strtolower()->clean("FERNANDO ZUEET");
输出
fernando zueet
strtoupper
将字符串转换为大写。
strtoupper()
use FzPhpSanitize\Sanitize; $value = Sanitize::strtoupper()->clean("fernando zueet");
输出
FERNANDO ZUEET
ucwords
将字符串中每个单词的首字母转换为大写。
ucwords(string $delimiters = " \t\r\n\f\v")
use FzPhpSanitize\Sanitize; $value = Sanitize::ucwords()->clean("fernando zueet");
输出
Fernando Zueet
ucfirst
将字符串的第一个字符转换为大写。
ucfirst()
use FzPhpSanitize\Sanitize; $value = Sanitize::ucfirst()->clean("fernando zueet");
输出
Fernando zueet
lcfirst
将字符串的第一个字符转换为小写。
lcfirst()
use FzPhpSanitize\Sanitize; $value = Sanitize::lcfirst()->clean("Fernando zueet");
输出
fernando zueet
rtrim
从字符串的开始删除空格(或其他字符)。
rtrim(string $charlist = " \t\n\r\0\x0B")
use FzPhpSanitize\Sanitize; $value = Sanitize::rtrim()->clean("fernando zueet ");
输出
fernando zueet
ltrim
从字符串的开始删除空格(或其他字符)。
ltrim(string $charlist = " \t\n\r\0\x0B")
use FzPhpSanitize\Sanitize; $value = Sanitize::ltrim()->clean(" fernando zueet");
输出
fernando zueet
trim
删除字符串开头和结尾的空格。
trim(string $charlist = " \t\n\r\0\x0B")
use FzPhpSanitize\Sanitize; $value = Sanitize::trim()->clean(" fernando zueet ");
输出
fernando zueet
date
日期格式。
date(string $format = 'Y-m-d')
use FzPhpSanitize\Sanitize; $value = Sanitize::date("Y-m-d")->clean("01/06/1987");
输出
1987-06-01
type
格式化类型。
type(string $type)
$type: string bool int float array object
use FzPhpSanitize\Sanitize; $value = Sanitize::type('string')->clean(10); $value2 = Sanitize::type('bool')->clean('true'); $value3 = Sanitize::type('int')->clean('1234'); $value4 = Sanitize::type('float')->clean('100,5');
输出
//value '10' //value2 true //value3 1234 //value4 100.5
numberFormat
用千位分隔符格式化数字。
numberFormat(int $decimals = 0, string $decimalpoint = '.', string $separator = ',')
use FzPhpSanitize\Sanitize; $value = Sanitize::numberFormat(2, ',', '.')->clean("1000");
输出
1.000,00
pregReplace
执行正则表达式搜索和替换。
pregReplace($pattern, $replacement)
https://php.ac.cn/manual/en/function.preg-replace.php
use FzPhpSanitize\Sanitize; $value = Sanitize::pregReplace('/[^A-Za-z]/', '')->clean("1234asdfg");
输出
asdfg
filterVar
使用指定的过滤器过滤变量。
filterVar(int $filter = FILTER_DEFAULT, $options = null)
https://php.ac.cn/manual/en/function.filter-var.php
use FzPhpSanitize\Sanitize; $value = Sanitize::filterVar(FILTER_SANITIZE_EMAIL)->clean("çótest@test.com");
test@test.com
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现与安全相关的问题,请通过电子邮件发送到 fernandozueet@hotmail.com 而不是使用问题跟踪器。
鸣谢
许可证
FZ Php Sanitize 使用 MIT 许可证授权。有关更多信息,请参阅 许可证文件。