Nếu trước đây chúng ta sử dụng Regular Expression để kiểm tra định dạng dữ liệu thì rất phức tạp phải không nào? Mình cũng vậy, trước đây mình toàn đi lên mạng kiếm những hàm người ta viết sẵn về sử dụng mà không hề biết ý nghĩa của nó như thế nào 🙂 Nhưng bây giờ thì khác vì trong PHP có một module hỗ trợ việc này khá tốt đó là PHP Filters.

PHP Filter là gì?

PHP Filters là một extension được tích hợp sẵn vào thư viện của PHP, đây là một thư viện dùng để 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 khớp (Sanitizing data). Nếu dịch theo đúng cái 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à ý nghiax 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. Và trong series này chúng ta sẽ tìm hiểu tổng cộng các loại filter sau:

  • Validate filters
  • Sanitize filters
  • Flag filters
  • Callback filter

Bộ lọc_var

(PHP 5> = 5.2.0, PHP 7)

filter_var – Lọc một biến với bộ lọc được chỉ định

Mô tả ¶

filter_var ( hỗn hợp $variable [, int $filter= FILTER_DEFAULT [, hỗn hợp $options ]]): hỗn hợp

thông số ¶

variable

Giá trị để lọc. Lưu ý rằng các giá trị vô hướng được chuyển đổi thành chuỗi bên trong trước khi chúng được lọc.

filter

ID của bộ lọc để áp dụng. Các loại lọc thủ công trang liệt kê các bộ lọc có sẵn.

Nếu bỏ qua, FILTER_DEFAULTsẽ được sử dụng, tương đương với FILTER_UNSAFE_RAW. Điều này sẽ dẫn đến việc không có bộ lọc diễn ra theo mặc định.

options

Mảng liên kết của các tùy chọn hoặc phân tách bitwise của cờ. Nếu bộ lọc chấp nhận các tùy chọn, cờ có thể được cung cấp trong trường “cờ” của mảng. Đối với bộ lọc “gọi lại”, loại có thể gọi được sẽ được thông qua. Cuộc gọi lại phải chấp nhận một đối số, giá trị được lọc và trả về giá trị sau khi lọc / vệ sinh nó.

<?php
// for filters that accept options, use this format
$options = array(
'options' => array(
'default' => 3, // value to return if the filter fails
// other options here
'min_range' => 0
),
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// for filters that only accept flags, you can pass them directly
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// for filters that only accept flags, you can also pass as an array
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
array('flags' => FILTER_NULL_ON_FAILURE));

// callback validate filter
function foo($value)
{
// Expected format: Surname, GivenNames
if (strpos($value, ", ") === false) return false;
list($surname, $givennames) = explode(", ", $value, 2);
$empty = (empty($surname) || empty($givennames));
$notstrings = (!is_string($surname) || !is_string($givennames));
if ($empty || $notstrings) {
return false;
} else {
return $value;
}
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Return Values ¶

Trả về dữ liệu đã lọc hoặc FALSEnếu bộ lọc bị lỗi.

Ví dụ ¶

Ví dụ # 1 Một ví dụ về bộ lọc_var ()

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>

Ví dụ trên sẽ xuất ra:

chuỗi (15) "bob@example.com"
bool (sai)

THOÁT KHỎI BÌNH LUẬN

Please enter your comment!
Please enter your name here