Php sanitizer
Sanitizer php array values.
Requirements
- PHP 7.0 or superior
Installation
Install this package with composer:
composer require fernandozueet/php-sanitizer
Mode of use
//instance
$sanitizer = new \PhpSanitizer\Sanitizer();
//values array
$array = [
'field' => ' Test 123 ',
'field2' => '01/06/1987',
'field3' => [
'test' => ' test value'
]
];
//set values
$sanitizer->setValues($array);
//sanitizer
$sanitizer->setField('field')->trim()->alpha();
$sanitizer->setField('field2')->date('Y-m-d');
$sanitizer->setField('field3.test')->trim();
$sanitizer->setField('field3')->alpha()->removeEmptyValue(); //remove value empty
$sanitizer->setField('field3.test')->setValueDefault(1)->trim(); //set value default
$valueClear = $sanitizer->setField('field3.test')->trim()->get(); //get value
//get values
var_dump($sanitizer->getValues()); //only set values
var_dump($sanitizer->getValues(false)); //all values
//or
//get values
var_dump($sanitizer->getValue('field'));
var_dump($sanitizer->getValue('field2'));
var_dump($sanitizer->getValue('field3.test'));
{
"field": "Test",
"field2": "1987-01-06",
"field3": {
"test": "test value"
}
}
Mode of use Laravel
Important: For laravel versions smaller than 6.0 use version 1.8.12
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class TestRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return false;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$this->sanitize();
return [
'name' => 'required',
'url' => 'required|url|unique:links,url'
];
}
/**
* Input sanitizer
*
* @return void
*/
public function sanitizer()
{
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues($this->all());
//sanitizer
$sanitizer->setField('field')->trim()->alpha();
$sanitizer->setField('field2')->date('Y-m-d');
$sanitizer->setField('field3.test')->trim();
$this->replace($sanitizer->getValues());
}
}
Filters
strip_tags
Strip HTML and PHP tags from a string.
strip_tags(string $allowable_tags = null)
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "<a href='#'>Link</a> <h1>Hello world!</h1>"
]);
$sanitizer->setField('field')->strip_tags('<a>');
{
"field": "<a href='#'>Link</a> Hello world!"
}
htmlentities
Convert all applicable characters to HTML entities.
htmlentities(int $quote_style = ENT_QUOTES, string $charset = 'UTF-8', $double_encode = null)
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "<a href='#'>Link</a> <h1>Hello world!</h1>"
]);
$sanitizer->setField('field')->htmlentities();
{
"field": "<a href="#">Link</a> <h1>Hello world!</h1>"
}
nl2br
Inserts HTML line breaks before all newlines in a string.
nl2br()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "test
test"
]);
$sanitizer->setField('field')->nl2br();
{
"field": "test<br />test"
}
cnpj
Format the cnpj format number.
cnpj()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "54465939000150"
]);
$sanitizer->setField('field')->cnpj();
{
"field": "54.465.939/0001-50"
}
cpf
Format the cpf format number.
cpf()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "43740999055"
]);
$sanitizer->setField('field')->cpf();
{
"field": "437.409.990-55"
}
numeric
Numbers.
numeric()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "asdfg123456"
]);
$sanitizer->setField('field')->numeric();
{
"field": "123456"
}
alphanumeric
Letters from aaz and numbers.
alphanumeric()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "!@#asdfg123456"
]);
$sanitizer->setField('field')->alphanumeric();
{
"field": "asdfg123456"
}
alpha
Letters from a to z.
alpha()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "123456asdfg*&("
]);
$sanitizer->setField('field')->alpha();
{
"field": "asdfg"
}
url
filter_var FILTER_SANITIZE_URL
url()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "http://php.net/manual/en/function.htmlentities.phpçù"
]);
$sanitizer->setField('field')->url();
{
"field": "http://php.net/manual/en/function.htmlentities.php"
}
filter_var FILTER_SANITIZE_EMAIL
email()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "çótest@test.com"
]);
$sanitizer->setField('field')->email();
{
"field": "test@test.com"
}
strtolower
Make a string lowercase.
strtolower()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "TEST tEST"
]);
$sanitizer->setField('field')->strtolower();
{
"field": "test test"
}
strtoupper
Make a string uppercase.
strtoupper()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "TEST tEST"
]);
$sanitizer->setField('field')->strtoupper();
{
"field": "TEST TEST"
}
ucwords
Uppercase the first character of each word in a string.
ucwords()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "test ok"
]);
$sanitizer->setField('field')->ucwords();
{
"field": "Test Ok"
}
ucfirst
Make a string's first character uppercase.
ucfirst()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "test test"
]);
$sanitizer->setField('field')->ucfirst();
{
"field": "Test test"
}
lcfirst
Make a string's first character lowercase.
lcfirst()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "Test test"
]);
$sanitizer->setField('field')->lcfirst();
{
"field": "test test"
}
urlencode
Encodes a URL.
urlencode()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "my=apples&are=green and red "
]);
$sanitizer->setField('field')->urlencode();
{
"field": "my=apples&are=green+and+red"
}
urldecode
Decodes an encoded URL.
urldecode()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "my=apples&are=green+and+red"
]);
$sanitizer->setField('field')->urldecode();
{
"field": "my=apples&are=green and red"
}
rtrim
Removes blanks (or other characters) from the beginning of the string.
rtrim(string $charlist = ' ')
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => " test test "
]);
$sanitizer->setField('field')->rtrim();
{
"field": " test test"
}
ltrim
Removes blanks (or other characters) from the beginning of the string.
ltrim(string $charlist = ' ')
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => " test test "
]);
$sanitizer->setField('field')->ltrim();
{
"field": "test test "
}
trim
Removing space at the beginning and end of a string.
trim(string $charlist = ' ')
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => " test test "
]);
$sanitizer->setField('field')->trim();
{
"field": "test test"
}
date
Date format.
date($format = 'Y-m-d')
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "01/06/1987"
]);
$sanitizer->setField('field')->date('Y-m-d');
{
"field": "1987-01-06"
}
number_format
Format a number with grouped thousands.
number_format(int $decimals, string $decimalpoint = null, string $separator = null)
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "1000"
]);
$sanitizer->setField('field')->number_format(2, ',', '.');
{
"field": "1.000,00"
}
float
filter_var FILTER_SANITIZE_NUMBER_FLOAT
float()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "12.50"
]);
$sanitizer->setField('field')->float();
{
"field": "1250"
}
boolean
filter_var FILTER_VALIDATE_BOOLEAN
bool()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "true"
]);
$sanitizer->setField('field')->bool();
{
"field": true
}
string
filter_var FILTER_SANITIZE_STRING
string()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "string test"
]);
$sanitizer->setField('field')->string();
{
"field": "string test"
}
floatval
Get float value of a variable.
floatval()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "100.50"
]);
$sanitizer->setField('field')->floatval();
{
"field": 100.5
}
intval
Get the integer value of a variable.
intval()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "100"
]);
$sanitizer->setField('field')->intval();
{
"field": 100
}
typing_bool
typing_bool()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "true"
]);
$sanitizer->setField('field')->typing_bool();
{
"field": true
}
typing_float
typing_float()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "100.5"
]);
$sanitizer->setField('field')->typing_float();
{
"field": 100.5
}
typing_int
typing_int()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "100"
]);
$sanitizer->setField('field')->typing_int();
{
"field": 100
}
typing_string
typing_string()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "string"
]);
$sanitizer->setField('field')->typing_string();
{
"field": "string"
}
typing_object
typing_object()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => [ 'ok' => 'test' ]
]);
$sanitizer->setField('field')->typing_object();
typing_array
typing_array()
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => [ 'ok' => 'test' ]
]);
$sanitizer->setField('field')->typing_array();
preg_replace
Perform a regular expression search and replace.
preg_replace($patterns, $replacements, $limit = -1)
http://php.net/manual/en/function.preg-replace.php
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "1234asdfg"
]);
$sanitizer->setField('field')->preg_replace('/[^A-Za-z]/', '');
{
"field": "asdfg"
}
filter_var
Filters a variable with a specified filter.
filter_var(int $filter, $options = null)
http://php.net/manual/en/function.filter-var.php
$sanitizer = new \PhpSanitizer\Sanitizer();
$sanitizer->setValues([
'field' => "çótest@test.com"
]);
$sanitizer->setField('field')->filter_var(FILTER_SANITIZE_EMAIL);
{
"field": "test@test.com"
}
Contributing
Please see CONTRIBUTING for details.
Security
If you discover security related issues, please email fernandozueet@hotmail.com instead of using the issue tracker.
Credits
License
The PHP Upload and Image Manipulation is licensed under the MIT license. See License File for more information.