Cách dùng hàm preg_macth trong lập trình web PHP

Hàm preg_macth là một trong những hàm khá quan trọng trong lập trình PHP dùng để lọc kiểm tra cũng như. Nó giúp chúng ta kiểm tra, so sánh và đưa ra kết quả theo ý muốn mà bạn muốn.

Sau đây mình sẽ nói chi tiết về hàm này


preg_match ($pattern, $subject, &$matches)

$pattern: là biểu thức Regular Expression

$subject: là chuỗi mà bạn cần kiểm tra

$matches: là kết quả trả về, nó được truyền ở dạng tham chiếu

Kết quả mà  preg_match trả về sẽ là TRUE hoặc FALSE

hoặc


int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Ở đây mình có một ví dụ kiểm tra url để cho nó hiển thị đó là url nội hay ngoại, tức là kiểm tra url của site hay của site khác như sau


if (preg_macth("/^(.*?)\:\/\//i", $url) or preg_match("/^\/\//i" , $url ))

  • Hai ký tự // ở đầu và cuối là đánh dấu nhận biết mở và kết biểu thức
  • Chữ i để chỉ ra là không phân biện viết hoa viết thường
  • (.*?) chuỗi này chỉ ra là nhận dạng tất cả các ký tự nếu có hoặc không có
  • Ký tự ^ để chỉ ra bắt đầu chuỗi
  • Còn trước mỗi ký tự có cái \

Tức là chỉ ra rằng sau đó là ký tự thuần không phải là ký tự đặc biệt

Một ví dụ nữa


$subject = "thinhweb.com";
$pattern = '/com/';
preg_match($pattern, $subject, $matches);
echo '<pre>';
print_r($matches);
echo '</pre>';

Như vậy kết quả trả về sẽ là


Array
(
[0] => com
)

Để hiểu hơn thì có nghĩa là đúng giá trị trả về của $matches sẽ là mảng array có giá trị đầu tiên là “com“, mà trong chuỗi cần kiểm tra có “com“. Lúc này điều kiện sẽ đúng (TRUE)

Kết luận

Bạn có thể sử dụng nó bất cứ chỗ nào trong quá trình viết code nhưng phải đúng trường hợp sử dụng tránh để bị bug cũng như sử dụng sao cho thích hợp. Hơn nữa với “preg_match()” bạn phải sử dụng thường xuyên mới có thể nhớ các kiểu của nó nhất là trường hợp bắt url như link youtube,.. để có thể cho đầu ra phù hợp hơn với yêu cầu.