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)

76 BÌNH LUẬN

  1. You made some good points there. I looked on the internet for additional
    information about the issue and found most
    people will go along with your views on this site.

  2. Its such as you read my mind! You appear to know so much approximately
    this, like you wrote the ebook in it or something.
    I believe that you just could do with some p.c.

    to pressure the message house a little bit, but instead of
    that, that is excellent blog. A great read. I will certainly
    be back.

  3. My partner and I absolputely love your blog and find many
    of your post’s to be just what I’m looking for. can you offer guest
    writers to write content in your case? I wouldn’t mnd creating a
    post or elaborating on a few of the subjects you write in relation to
    here. Again, awwsome website!

  4. Hmm is anyone else encountering problems with the pictures on this blog loading?
    I’m trying to figure out if its a problem on my end or if it’s the blog.
    Any feedback would be greatly appreciated.

  5. I would like to thank you for the efforts you have put in writing this blog.

    I’m hoping to see the same high-grade content by you in the future as well.
    In fact, your creative writing abilities has encouraged me to get my
    own, personal website now 😉

  6. Hmm it looks like your website ate my first comment (it was extremely long) so I guess I’ll
    just sum it up what I submitted and say, I’m thoroughly enjoying
    your blog. I too am an aspiring blog writer but I’m still new
    to the whole thing. Do you have any helpful hints for rookie blog writers?
    I’d definitely appreciate it.

  7. Thank you for some other magnificent article. The place else could anyone get that type of information in such a perfect method
    of writing? I’ve a presentation next week, and I’m at the search for such info.

  8. Link exchange is nothing else except it is just placing the other person’s webpage link on your page at proper place and
    other person will also do same for you.

  9. I was suggested this blog by my cousin. I’m not
    sure whether this post is written by him as nobody else
    know such detailed about my difficulty. You’re
    amazing! Thanks!

  10. I truly love your site.. Very nice colors & theme.
    Did you build this web site yourself? Please reply back as I’m attempting to create my own blog
    and want to learn where you got this from or just what the theme
    is called. Thank you!

  11. Do you mind if I quote a few of your articles as long as I provide credit and sources back to your blog?
    My blog site is in the very same area of interest as
    yours and my visitors would truly benefit from a lot of the information you
    provide here. Please let me know if this ok with you.
    Thanks a lot!

  12. I’ve been surfing on-line more than 3 hours nowadays, but I by no means
    discovered any attention-grabbing article like yours. It is lovely value sufficient for me.
    Personally, if all site owners and bloggers made excellent content as you probably did, the web might be much more useful than ever before.

  13. Attractive component of content. I just stumbled upon your website and
    in accession capital to assert that I get in fact enjoyed account your weblog posts.
    Any way I will be subscribing on your feeds and even I fulfillment
    you access constantly fast.

  14. Sweet blog! I found it while surfing around on Yahoo News. Do you have
    any suggestions on how to get listed in Yahoo News?
    I’ve been trying for a while but I never seem to get there!
    Cheers

  15. This awesome blog is definitely interesting as well as diverting. I have picked up a lot of useful advices out of this source. I ad love to visit it again soon. Thanks a lot!

  16. Wonderful blog! I found it while browsing on Yahoo News. Do you have any suggestions on how to get listed in Yahoo News? I ave been trying for a while but I never seem to get there! Thank you

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

Please enter your comment!
Please enter your name here