Filter_input trong PHP

Nếu trước đây chúng ta sử dụng Biểu thức chính quy để kiểm tra định dạng dữ liệu thì rất phức tạp phải không? . ) Nhưng bây giờ thì khác vì trong PHP có một module hỗ trợ công việc này khá tốt đó là PHP Filters

Filter_input trong PHP

Bài viết này đã được đăng tại freetuts. net , không được sao chép dưới mọi hình thức.

Bộ lọc PHP là gì?

Bộ lọc PHP là một tiện ích mở rộng được tích hợp sẵn trong thư viện của PHP, đây là một thư viện được sử dụng để kiểm tra tính hợp lệ của dữ liệu (xác thực dữ liệu), lọc và xóa đi các ký tự trùng khớp (Dữ liệu được khử trùng). Nếu dịch theo đúng thì tên của nó là bộ lọc trong PHP, như vậy tác dụng của nó cũng chính là ý nghĩa của nó. Thông thường chúng ta hay sử dụng Bộ lọc PHP để kiểm tra định dạng dữ liệu vì nó tương đối đơn giản. Và trong loạt bài này, chúng ta sẽ tìm hiểu tổng cộng các loại bộ lọc sau

- Trong PHP, bộ lọc (filter) được xử lý để xác thực và lọc dữ liệu đến từ các nguồn không an toàn, giả mạo như đầu vào của người dùng

filter_has_var()- Kiểm tra xem một biến (với kiểu đầu vào chỉ định) có tồn tại hay không. filter_id()- Trả về “ID bộ lọc” dựa trên “tên bộ lọc”. filter_input()- Nhận một biến bên ngoài (ví dụ như từ biểu mẫu) và tùy chọn lọc nó. filter_input_array()- Nhận các biến bên ngoài (ví dụ như từ biểu mẫu) và chọn tùy chọn bộ lọc của chúng. filter_list()- Trả về một mảng chứa tên của tất cả các bộ lọc được hỗ trợ trong PHP. filter_var()- Filter a variable based on a filter only. filter_var_array()- Nhận nhiều biến và bộ lọc của chúng

- Lọc. dùng để lọc dữ liệu đưa vào không phù hợp với yêu cầu và trả về một kết quả đúng với yêu cầu


Sử dụng hàm filter_var($variable, $filter, $options) để kiểm tra biến $variable với các điều kiện đưa vào, biến $filter thường mang các giá trị


- FILTER_VALIDATE_BOOLEAN

- FILTER_VALIDATE_EMAIL

- FILTER_VALIDATE_FLOAT

- FILTER_VALIDATE_IP

- FILTER_VALIDATE_URL


Ví dụ,


$x = 'a. gmail. com';


if(filter_var($x, FILTER_VALIDATE_EMAIL)){

echo 'là email';

}khác {

echo 'không phải là email';

}


Ví dụ, kiểm tra là số nguyên, và có giá trị nằm trong một miền giá trị


$x = 11;


$int_options = mảng('options' => array('min_range' => 4, 'max_range' => 10));

if(filter_var($x, FILTER_VALIDATE_INT, $int_options)){

echo 'tun dieu kien';

}khác {

echo 'không điều kiện';

}

?>


Để tự định nghĩa và gọi hàm trong bộ lọc PHP, hãy sử dụng cú pháp sau

filter_var($variable, $FILTER_CALLBACK, array(‘options’ => ‘myFunc’));


Trong đó, myFunc là tự định nghĩa hàm


Ví dụ, chức năng lọc,


$variable = 'Nguyễn Văn Tèo';


hàm convertString($string) {

$string = str_replace(' ', '_', $string);

trả lại chuỗi $;

}


echo filter_var($variable, FILTER_CALLBACK, array('options' => 'convertString'));

?>


Ví dụ, chức năng xác thực,


$số = 3;


hàm checkNumber($number) {

cờ $ = sai;

if($number % 2 == 0) {

cờ $ = đúng;

}

trả lại cờ $;

}


if (filter_var($number, FILTER_CALLBACK, array('options' => 'checkNumber'))) {

echo 'là số tối';

}khác {

echo 'là số lẻ';

}

?>


Đây là clip số 97


https. //www. youtube. com/watch?v=g-wXwaDZMeg&index=98&list=PLv6GftO355AsZFXlWLKob6tMsWZa4VCY1


Use function filter_var($variable, FILTER_VALIDATE_REGEXP, $options) kết hợp với biểu thức chính quy


Ví dụ, kiểm tra số điện thoại,


$value = '084-05-12. 345678';

tùy chọn $ = mảng (

'tùy chọn' => mảng('regexp' => '#^084-[0-9]{2}-[0-9]{2}\. [0-9]{6}$#')

);

if (filter_var($value, FILTER_VALIDATE_REGEXP, $options)) {

tiếng vang $value. ' thỏa mãn';

}khác {

tiếng vang $value. ' chưa thỏa mãn';

}

?>


Đoạn mã kiểm tra phần mở rộng của một tập tin,


$value = 'tèo. png';

tùy chọn $ = mảng (

'tùy chọn' => mảng ('regrec' => '#\. (jpg. png. gif)$#')

);

if (filter_var($value, FILTER_VALIDATE_REGEXP, $options)) {

tiếng vang $value. ' thỏa mãn';

}khác {

tiếng vang $value. ' chưa thỏa mãn';

}

?>


Sử dụng after code code check giá trị đầu vào chỉ bao gồm chữ và số,


$value = 'teopng';

tùy chọn $ = mảng (

'tùy chọn' => mảng('regexp' => '#^[a-zA-Z0-9]+$#')

);

if (filter_var($value, FILTER_VALIDATE_REGEXP, $options)) {

tiếng vang $value. ' thỏa mãn';

}khác {

tiếng vang $value. ' chưa thỏa mãn';

}

?>


Sử dụng hàm filter_var_array() để kiểm tra, lọc cùng lúc nhiều giá trị, ví dụ,


$data = mảng(

'name'  => 'nguyen van teo',

'tuổi'   => '13',

'email' => 'nvt@gmail. com'

);

bộ lọc $ = mảng (

'tên' => mảng (

'bộ lọc' => FILTER_CALLBACK,

'tùy chọn' => 'ucwords'

),

'tuổi' => mảng (

'bộ lọc' => FILTER_VALIDATE_INT,

'tùy chọn' => mảng ('phạm vi tối thiểu' => 1, 'phạm vi tối đa' => 100)

),

'email' => mảng (

'bộ lọc' => FILTER_VALIDATE_EMAIL

),

);

$result = filter_var_array($data, $filters);

  echo '

';

print_r($kết quả);

tiếng vang '

';

?>


Hàm filter_input(input_type, variable, filter, options) được sử dụng để kiểm tra các giá trị từ FORM. Chức năng này cũng có thể lấy dữ liệu được lấy từ các trường hợp khác như $_GET, $_POST, $_COOKIE, $_ENV, $_SERVER