Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách phát triển một hàm PHP
9 có thể tái sử dụng để làm sạch đầu vàoCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Giới thiệu về vệ sinh đầu vào
Trước khi xử lý dữ liệu từ các nguồn không đáng tin cậy như yêu cầu HTTP
0 hoặcCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
1, trước tiên bạn phải luôn khử trùng dữ liệu đóCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Làm sạch đầu vào có nghĩa là xóa các ký tự không hợp lệ bằng các kỹ thuật xóa, thay thế, mã hóa hoặc thoát
PHP cung cấp một danh sách các bộ lọc làm sạch mà bạn có thể sử dụng để làm sạch đầu vào một cách hiệu quả. Các chức năng sau sử dụng các bộ lọc này để khử trùng đầu vào
- bộ lọc_input[]
- bộ lọc_var[]
- filter_input_array[]
- filter_var_array[]
Trong hướng dẫn này, chúng ta sẽ tạo một hàm
9 có thể tái sử dụng để làm sạch các đầu vào theo cách biểu cảm hơnCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Định nghĩa hàm sanitize[]
Giả sử bạn có các trường sau trong biến
3 và muốn làm sạch chúngCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
- Tên
- tuổi tác
- trọng lượng
- trang chủ
Để làm điều đó, bạn có thể định nghĩa một hàm
9 và gọi nó như sauCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Code language: PHP [php]
$data = santize[$_POST, $fields];
Hàm
9 sẽ trông như thế nàyCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Hàm có hai tham số
- Tham số
6 là một mảng kết hợp. Nó có thể là
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
3,
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
8 hoặc một mảng kết hợp thông thường
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
- Tham số
9 là một mảng chỉ định danh sách các trường có quy tắc
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Hàm
9 trả về một mảng chứa dữ liệu đã được làm sạchCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
The
9 phải là một mảng kết hợp trong đó khóa là tên trường và giá trị là quy tắc cho trường đó. Ví dụ
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Code language: PHP [php]
Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Lưu ý rằng
62 có nghĩa là một chuỗi các chuỗiCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Để vệ sinh các lĩnh vực này
- Đầu tiên, lặp lại
9 và sử dụng bộ lọc tương ứng cho từng. Ví dụ: nếu quy tắc là
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
64, bộ lọc sẽ là
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
65
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
- Thứ hai, vệ sinh trường bằng bộ lọc
Để có bộ lọc dựa trên quy tắc của một trường, bạn có thể xác định ánh xạ giữa các quy tắc với các bộ lọc như thế này
6Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Ví dụ: phần sau trả về bộ lọc của quy tắc
64Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
2Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Để dọn dẹp nhiều trường cùng một lúc, bạn có thể sử dụng hàm
67Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
4Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Tham số đầu tiên của hàm
67 là một mảng các biến để lọc. Và tham số thứ hai là một mảng các bộ lọc. Ví dụ, nó sẽ trông như thế nàyCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
6Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Vì vậy, bạn cần trả về
69 này từ các mảngCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
9 vàCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
21. Để làm điều đó, bạn có thể sử dụng chức năngCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
22 như thế nàyCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
1
function sanitize[array $inputs, array $fields] : array
Code language: PHP [php]
Sau đây là hàm
9Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
3Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Làm cho hàm sanitize[] linh hoạt hơn
Hàm
9 sử dụng hằng sốCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
21. Để linh hoạt hơn, bạn có thể thêm một tham số và đặt giá trị mặc định của nó thành hằng sốCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
21 như thế nàyCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
7Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Ngoài ra, bạn có thể muốn làm sạch các trường trong
6 bằng cách sử dụng một bộ lọc e. g. ,Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
65Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Để làm điều đó, bạn có thể
- Đầu tiên, đặt tham số
9 là tùy chọn và đặt giá trị mặc định của nó thành một mảng trống
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
40
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
- Thứ hai, thêm tham số bộ lọc mặc định
- Thứ ba, nếu mảng
41 trống, hãy sử dụng bộ lọc mặc định
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Hàm
9 sẽ giống như sauCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
0Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Xóa khoảng trắng của chuỗi
Để xóa khoảng trắng của chuỗi, bạn sử dụng hàm
43. Và để loại bỏ các khoảng trắng của một mảng chuỗi các bạn sử dụng hàmCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
22 với hàmCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
43Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
1Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Tuy nhiên,
6 có thể chứa các mục không phải là chuỗi. Để chỉ cắt mục chuỗi, bạn có thể sử dụng hàmCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
47 để kiểm tra xem mục đó có phải là chuỗi hay không trước khi cắt mục đó
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Code language: PHP [php]
2Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
6 có thể chứa một mục là một mảng các chuỗi. Ví dụCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
3Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Để cắt chuỗi trong mục
49, bạn cần sử dụng hàm đệ quyCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
4Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Gọi array_trim[] từ hàm sanitize[]
Để gọi hàm
60 từ hàmCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
9Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
- Đầu tiên, thêm một tham số mới có tên là
62 vào hàm
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
9 và đặt giá trị mặc định của nó thành true
Code language: PHP [php]function sanitize[array $inputs, array $fields] : array
- Thứ hai, gọi
60 nếu tham số $trim là true
Code language: PHP [php]$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
Phần sau đây hiển thị hàm
9 được cập nhậtCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
5Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Đặt nó tất cả cùng nhau
Phần sau đây hiển thị tệp
66 hoàn chỉnh với các hàmCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
21,Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
60 vàCode language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];
9Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
6Code language: PHP [php]
function sanitize[array $inputs, array $fields] : array
Sử dụng chức năng sanitize[]
Phần sau đây trình bày cách sử dụng hàm
9 để làm sạch dữ liệu trongCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
11 bằng cách sử dụng các quy tắc làm sạch được chỉ định trongCode language: PHP [php]
function sanitize[array $inputs, array $fields] : array
9Code language: PHP [php]
$fields = [ 'name' => 'string', 'email' => 'email', 'age' => 'int', 'weight' => 'float', 'github' => 'url', 'hobbies' => 'string[]' ];