Hàm preg_match_all trong PHP

preg_match_all được dùng để khớp ký tự trong chuỗi. Chẳng hạn như bạn có một đoạn văn bản dài bạn muốn tìm một đoạn văn nào đó trùng với từ muốn tìm thì cần phải dùng tới hàm preg_match_all.

Nó sẽ khác so với preg_match, hàm này sẽ chỉ khớp với đúng một lần duy nhất. Còn preg_match_all sẽ khớp toàn bộ chuỗi được tìm thấy.

Cách dùng Hàm preg_match_all()

Cú pháp:

preg_match_all($pattern, $subject, $matches, $flags)

Trong đó:

  • $pattern: là chuỗi sử dụng biểu thức chính quy Regular Expression.
  • $subject: là chuỗi mà bạn muốn khớp.
  • $match: đây là biến trả về kết quả
  • $flags: là tham số vị trí cắt chuỗi khớp, mặc định $flag = 0 (có thể bỏ trống).
  • $offset: là tham số vị trí bắt đầu của chuỗi khớp, mặc định $offset = 0 (có thể bỏ trống).

Ví dụ:

So khớp chuỗi từ 0 đến 9

<?php
preg_match_all(
    "/[0-9]+/",
    "<b>Hotline:</b> - <b> 0123456789</b> <b> 0445364565</b> <b> 068967567</b>",
    $matches
);
var_dump('<pre>');
var_dump($matches);
var_dump('</pre>');
?>

Và nó đã tìm thấy 3 chuỗi (string) chứa số từ 0 – 9

pre_match_all_php

Bây giờ mình sẽ thay /[0-5]+/ xem thế nào nhé!

pre_match_all_php1-

Bây giờ nó đã tìm thấy 6 chuỗi. Như vậy bạn đã hiểu được quy tắc hoạt động rồi phải không nào. Pre_match_all sẽ lần lượt lấy số từ 1 khớp chuỗi, rồi tới 2, tới 3…

Ví dụ khác:

<?php
$string = "Xin chào baby";
$pattern = preg_match('/baby/', $string);
if ($pattern) {
    echo 'Khớp chuỗi';
} else {
    echo 'Chuỗi không khớp';
}
?>

Một số khớp chuỗi thường dùng:

  • Validate URL: |^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i
  • Khớp domain và URL: /https?://(?:[-w]+.)?([-w]+).w+(?:.w+)?/?.*/i

Để khớp chuỗi phức tạp hơn bạn cần tìm hiểu về Regular Expression. Chắc chắn sẽ rất hữu ích cho bài tập này đấy.

Related Posts

Namespace trong PHP

Namespace cho phép các lớp / hàm / hằng cùng tên được sử dụng trong các ngữ cảnh khác nhau mà không có bất kỳ xung đột…

Hàm str_split() trong PHP

Bài viết này chúng ta sẽ đi tìm hiểu về hàm str_split(). Một trong những hàm thường được dùng trong PHP. Vậy cách sử dụng str_split() như…

Tạo chức năng sửa xoá thành viên bằng PHP & MySQL

Với một số trang web để quản lý thành viên (user) dễ dàng trong phần quản trị admin bạn phải khởi tạo chức năng sửa xoá thành…

Hàm str_replace trong PHP

Hàm str_replace trong PHP là gì? Hàm str_replace() trong PHP là một hàm được sử dụng để thay thế tất cả các xuất hiện của một chuỗi…

laravel8-vews-1

Views trong Laravel 8

Trong chuỗi series hướng dẫn học Laravel thì Views cũng quan trọng không kém gì so với Controller hay Model. Vậy chúng ta sẽ làm thế nào…

Validate Form trong PHP

Mặc dù trình duyệt hỗ trợ JavaScript để xác thực người dùng cho website. Tuy nhiên nếu JavaScript bị lỗi hoặc tắt đi thì công việc này…