Filter và Filter Constant trong PHP cung cấp một cách tiện lợi để kiểm tra và xử lý dữ liệu đầu vào từ người dùng hoặc từ các nguồn khác, đảm bảo dữ liệu nhận được đáng tin cậy và phù hợp với các tiêu chuẩn nhất định trước khi sử dụng. Filter Constants cung cấp các hằng số được sử dụng để xác định các loại kiểm tra dữ liệu cụ thể mà bạn muốn áp dụng, như kiểm tra địa chỉ email, URL hoặc kiểm tra số nguyên. Hãy cùng Vietnix tham khảo thêm về chủ đề Filter và Filter Constants trong PHP qua bài viết dưới đây.
Filter là gì?
PHP filter là tiện ích mở rộng lọc dữ liệu bằng cách làm sạch hoặc xác minh nó. Tiện ích này có vai trò rất quan trọng trong bảo mật của website, đặc biệt hữu ích khi dữ liệu đến từ các nguồn không xác định, vị trí xa, nguồn từ người dùng tự cung cấp. Ví dụ dễ thấy nhất là dữ liệu biểu mẫu HTML.
PHP Filter là một công cụ hữu ích để bảo vệ trang web của bạn khỏi các cuộc tấn công mạng. Nó có thể giúp bạn loại bỏ các ký tự độc hại khỏi dữ liệu và xác minh rằng dữ liệu có giá trị hợp lệ. Điều này có thể giúp bạn ngăn chặn các cuộc tấn công như SQL injection và cross-site scripting. Điều này giúp tăng tính bảo mật và độ tin cậy của ứng dụng PHP của bạn, đồng thời giúp ngăn ngừa các lỗ hổng bảo mật tiềm ẩn.
PHP Filter là một phần của PHP core, vì vậy nó có sẵn trên tất cả các máy chủ web PHP. Để sử dụng PHP Filter, bạn cần thêm thư viện filter vào trang web của mình. Bạn có thể tìm thêm thông tin về PHP Filter trong tài liệu PHP.
Mọi người cũng xem:
Phân loại hàm filter
Thông thường sẽ có hai loại filter như sau:
- Validation – xác thực: xác minh và kiểm tra dữ liệu có đáp ứng các tiêu chuẩn nhất định hay chưa.
- Sanitization – làm sạch: khác với xác thực, filter này sẽ làm sạch dữ liệu để đảm bảo rằng không có các ký tự không mong muốn (bằng cách xóa/thay đổi chúng)
Ví dụ 1: Xác thực URL bằng bộ lọc FILTER_VALIDATE_URL.
<?php
// PHP program to validate URL
// Declare variable and initialize it to URL
$url = "https://vietnix.vn/";
// Use filter function to validate URL
if (filter_var($url, FILTER_VALIDATE_URL)) {
echo "valid URL";
} else {
echo "Invalid URL";
}
?>
Ví dụ 2: Xác thực email bằng bộ lọc FILTER_VALIDATE_EMAIL.
<?php
// PHP program to validate email
// Declare variable and initialize it to email
$email = "xyz@gmail.com";
// Use filter function to validate email
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Valid Email";
} else {
echo "Invalid Email";
}
?>
Ví dụ 3: Dọn sạch email bằng bộ lọc FILTER_SANITIZE _EMAIL.
<?php
// PHP program to sanitize an email
// Declare variable and initialize it
// to an email with illegal characters
$email = "user@vietnix.vn";
// Sanitize the email using the FILTER_SANITIZE_EMAIL filter
$sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL);
// Output the sanitized email
echo "Sanitized Email: " . $sanitizedEmail;
?>
Hàm filter: được sử dụng để lọc dữ liệu đến từ một nguồn không an toàn.
- filter_var(): Lọc một biến cụ thể.
- filter_var_array(): Lọc nhiều biến tức là mảng các biến.
- filter_has_var(): Kiểm tra xem biến của một loại đầu vào cụ thể có tồn tại hay không
- filter_id(): Nó giúp lấy id bộ lọc của tên bộ lọc đã chỉ định.
- filter_list(): Nó trả về một danh sách các tên bộ lọc được hỗ trợ ở dạng một mảng.
- filter_input(): Nó nhận một biến bên ngoài và lọc nó nếu được đặt để làm như vậy.
- filter_input_array(): Nó giống như
filter_input()
nhưng ở đây Lấy nhiều biến tức là mảng biến và lọc chúng nếu được đặt để làm như vậy.
Predefined Filter Constants – Hằng số bộ lọc được xác định trước: Có nhiều hằng số bộ lọc được xác định trước được liệt kê bên dưới:
- Xác thực hằng số bộ lọc (Validate filter constants)
- FILTER_VALIDATE_BOOLEAN: Xác thực một boolean.
- FILTER_VALIDATE_INT: Xác thực một số nguyên.
- FILTER_VALIDATE_FLOAT: Xác thực số float.
- FILTER_VALIDATE_REGEXP: Xác thực một biểu thức chính quy.
- FILTER_VALIDATE_IP: Xác thực địa chỉ IP.
- FILTER_VALIDATE_EMAIL: Xác thực địa chỉ email.
- FILTER_VALIDATE_URL: Xác thực một URL.
- Làm sạch hằng số bộ lọc (Sanitize filter constants)
- FILTER_SANITIZE_EMAIL: Xóa tất cả các ký tự không hợp lệ khỏi địa chỉ email
- FILTER_SANITIZE_ENCODED: Xóa/Mã hóa các ký tự đặc biệt
- FILTER_SANITIZE_MAGIC_QUOTES: Áp dụng hàm
addlashes()
- FILTER_SANITIZE_NUMBER_FLOAT: Xóa tất cả ký tự, trừ chữ số, +- và tùy chọn khác,…
- FILTER_SANITIZE_NUMBER_INT: Xóa tất cả ký tự ngoại trừ chữ số và dấu + –
- FILTER_SANITIZE_SPECIAL_CHARS: Xóa các ký tự đặc biệt
- FILTER_SANITIZE_FULL_SPECIAL_CHARS: Có thể vô hiệu hóa trích dẫn mã hóa bằng cách sử dụng FILTER_FLAG_NO_ENCODE_QUOTES.
- FILTER_SANITIZE_STRING : Xóa thẻ/ký tự đặc biệt khỏi chuỗi
- FILTER_SANITIZE_STRIPPED : Bí danh của FILTER_SANITIZE_STRING
- FILTER_SANITIZE_URL: Xóa tất cả các ký tự không hợp lệ khỏi URL của s
- Các hằng số bộ lọc khác:
- FILTER_UNSAFE_RAW: Không làm gì, tùy chọn tách/mã hóa các ký tự đặc biệt
- FILTER_CALLBACK: Gọi hàm do người dùng định nghĩa để lọc dữ liệu
Lời kết
Vietnix hy vọng nội dung bài viết trên đã giúp bạn hiểu rõ hơn về Filter và Filter Constant trong PHP. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết khác tại vietnix.vn để hiểu hơn về lập trình, chúc bạn thành công!