Hướng dẫn php filter - bộ lọc php

Bộ lọc trong PHP – PHP Filters

Trong bài Xác thực biểu mẫu với form chúng ta đã tìm hiểu cách xác thực dữ liệu người dùng nhập vào biểu mẫu. Và như trước đây chúng ta cũng đã tìm hiểu về việc sử dụng biểu thức chính quy (Regular Expression) để kiểm tra định dạng dữ liệu thì nó khá là phức tạp một chút. Còn bài này sẽ cho chúng ta biết về việc sử dụng bộ lọc để lọc và kiểm tra sự hợp lệ của email và địa chỉ web.

Nội Dung

  • 1. Bộ lọc trong PHP là gì?
  • 2. Bộ lọc PHP mở rộng
  • 3. Tạo sao nên sử dụng bộ lọc trong PHP
  • 4. Chức năng của bộ lọc trong PHP
  • 5. Hằng số bộ lọc được xác định trước trong PHP
    • 5.1. Xác thực các hằng số bộ lọc
    • 5.2. Vệ sinh hằng số bộ lọc
    • 5.3. Các hằng số bộ lọc khác

FILTER_UNSAFE_RAW : Không làm gì cả, tùy chọn dải / mã hóa các ký tự đặc biệt

FILTER_CALLBACK : Gọi hàm do người dùng xác định để lọc dữ liệu

Trong bài Xác thực biểu mẫu với form chúng ta đã tìm hiểu cách xác thực dữ liệu người dùng nhập vào biểu mẫu. Và như trước đây chúng ta cũng đã tìm hiểu về việc sử dụng biểu thức chính quy (Regular Expression) để kiểm tra định dạng dữ liệu thì nó khá là phức tạp một chút. Còn bài này sẽ cho chúng ta biết về việc sử dụng bộ lọc để lọc và kiểm tra sự hợp lệ của email và địa chỉ web.

  • Nội Dung : là việc xác định xem dữ liệu có hợp lệ hay không.
  • 1. Bộ lọc trong PHP là gì? : là việc loại bỏ bất kỳ ký tự không hợp lệ nào khỏi dữ liệu.

2. Bộ lọc PHP mở rộng

3. Tạo sao nên sử dụng bộ lọc trong PHP

4. Chức năng của bộ lọc trong PHPfilter_list() có thể được sử dụng để danh sách những gì các bộ lọc PHP mở rộng cung cấp, ví dụ:


  $filter) {
    echo '';
  }
  ?>
Filter Name Filter ID
' . $filter . '' . filter_id($filter) . '

5. Hằng số bộ lọc được xác định trước trong PHP

  • 5.1. Xác thực các hằng số bộ lọc: được sử dụng để xác thực hoặc kiểm tra xem dữ liệu có đáp ứng các tiêu chuẩn nhất định hay không. Ví dụ: chuyển vào FILTER_VALIDATE_URL sẽ xác định xem dữ liệu có phải là url hợp lệ hay không, nhưng nó sẽ không tự thay đổi dữ liệu hiện có.
  • Đầu tiên mình muốn nó là việc làm sạch và xác thực dữ liệu đầu vào của người dùng là một trong những nhiệm vụ phổ biến nhất trong khi lập trình web. Để làm cho nhiệm vụ này dễ dàng hơn, PHP cung cấp tiện ích mở rộng filters mà bạn có thể sử dụng để làm sạch hoặc xác thực dữ liệu như địa chỉ email, URL, địa chỉ IP,… (Vệ sinh): không giống như xác thực, Sanitization sẽ làm sạch dữ liệu để đảm bảo rằng không có ký tự không mong muốn nào bằng cách xóa hoặc thay đổi dữ liệu. Ví dụ: chuyển các dữ liệu vào FILTER_SANITIZE_EMAIL sẽ xóa tất cả các ký tự không thích hợp cho một địa chỉ email. Có nghĩa là các địa chỉ này cũng sẽ không được xác thực

3. Tạo sao nên sử dụng bộ lọc trong PHP

4. Chức năng của bộ lọc trong PHP

  • 5. Hằng số bộ lọc được xác định trước trong PHP
  • 5.1. Xác thực các hằng số bộ lọc
  • Đầu tiên mình muốn nó là việc làm sạch và xác thực dữ liệu đầu vào của người dùng là một trong những nhiệm vụ phổ biến nhất trong khi lập trình web. Để làm cho nhiệm vụ này dễ dàng hơn, PHP cung cấp tiện ích mở rộng filters mà bạn có thể sử dụng để làm sạch hoặc xác thực dữ liệu như địa chỉ email, URL, địa chỉ IP,…
  • Bộ lọc trong PHP – PHP Filters giống như là một phần mở rộng được tích hợp sẵn vào thư viện của PHP. Nó là một thư viện để kiểm tra tính hợp lệ của dữ liệu (validate data), lọc và xóa đi những ký tự trùng hợp ( Sanitizing data). Nếu như dịch theo đúng cái tên cũng chính là ý nghĩa của nó. Thông thường chúng ta hay sử dụng PHP Filters để kiểm tra định dạng dữ liệu vì nó tương đối đơn giản.
  • Ở bài này thì mình có 2 thuật ngữ mà ta nên chú ý:

Xác thực dữ liệu : là việc xác định xem dữ liệu có hợp lệ hay không.

Lọc dữ liệu : là việc loại bỏ bất kỳ ký tự không hợp lệ nào khỏi dữ liệu.

4. Chức năng của bộ lọc trong PHP

Dưới đây sẽ là một số chức năng cụ thể của từng bộ lọc filter trong PHP:

  • filter_var() : Lọc một biến cụ thể : Lọc một biến cụ thể
  • filter_var_array() : Lọc nhiều biến tức là mảng biến : Lọc nhiều biến tức là mảng biến
  • filter_has_var() : Kiểm tra xem biến của các loại đầu vào cụ thể có tồn tại hay không : Kiểm tra xem biến của các loại đầu vào cụ thể có tồn tại hay không
  • filter_id() : giúp lấy id bộ lọc của tên bộ lọc được chỉ định : giúp lấy id bộ lọc của tên bộ lọc được chỉ định
  • filter_list() : Trả về danh sách tên bộ lọc được hỗ trợ ở dạng mảng. : Trả về danh sách tên bộ lọc được hỗ trợ ở dạng mảng.
  • filter_input() : Nhận một biến bên ngoài và lọc nó : Nhận một biến bên ngoài và lọc nó
  • filter_input_array() : giống như filter_input() nhưng ở đây lấy các mảng biến và lọc chúng. : giống như filter_input() nhưng ở đây lấy các mảng biến và lọc chúng.

5. Hằng số bộ lọc được xác định trước trong PHP

Mình sẽ liệt kê một số hằng số xác định trước dưới đây:

5.1. Xác thực các hằng số bộ lọc

  • FILTER_VALIDATE_BOOLEAN : Xác thực boolean : Xác thực boolean
  • FILTER_VALIDATE_INT : Xác thực một số nguyên : Xác thực một số nguyên
  • FILTER_VALIDATE_FLOAT : Xác thực một float : Xác thực một float
  • FILTER_VALIDATE_REGEXP : Xác thực một biểu thức chính quy : Xác thực một biểu thức chính quy
  • FILTER_VALIDATE_IP : Xác thực địa chỉ IP : Xác thực địa chỉ IP
  • FILTER_VALIDATE_EMAIL : Xác thực địa chỉ email : Xác thực địa chỉ email
  • FILTER_VALIDATE_URL : Xác thực URL : Xác thực URL

5.2. Vệ sinh hằng số bộ lọc

  • FILTER_SANITIZE_EMAIL : Xóa tất cả các ký tự không hợp lệ khỏi địa chỉ 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 : Xóa / Mã hóa các ký tự đặc biệt
  • FILTER_SANITIZE_MAGIC_QUOTES : Áp dụng hàm addslash() : Áp dụng hàm addslash()
  • FILTER_SANITIZE_NUMBER_FLOAT : Xóa tất cả các ký tự, trừ các chữ số, + – và tùy chọn., EE : Xóa tất cả các ký tự, trừ các chữ số, + – và tùy chọn., EE
  • FILTER_SANITIZE_NUMBER_INT : Xóa tất cả các ký tự ngoại trừ các chữ số và + – : Xóa tất cả các ký tự ngoại trừ các chữ số và + –
  • FILTER_SANITIZE_SPECIAL_CHARS : Xóa các ký tự đặc biệt : Xóa các ký tự đặc biệt
  • FILTER_SANITIZE_FULL_SPECIAL_CHARS : Có thể tắt báo giá mã hóa bằng cách sử dụng FILTER_FLAG_NO_ENCODE_QUOTES. : Có thể tắt báo giá 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 : Xóa thẻ / ký tự đặc biệt khỏi chuỗi
  • FILTER_SANITIZE_STRIPPED : Bí danh của FILTER_SANITIZE_STRING : Bí danh của FILTER_SANITIZE_STRING
  • FILTER_SANITIZE_URL : Xóa tất cả ký tự bất hợp pháp khỏi URL : Xóa tất cả ký tự bất hợp pháp khỏi URL

5.3. Các hằng số bộ lọc khác

  • FILTER_UNSAFE_RAW : Không làm gì cả, tùy chọn dải / mã hóa các ký tự đặc biệt : Không làm gì cả, tùy chọn dải / mã hóa các ký tự đặc biệt
  • FILTER_CALLBACK : Gọi hàm do người dùng xác định để lọc dữ liệu : Gọi hàm do người dùng xác định để lọc dữ liệu