Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Hàm mb_eregi() trong PHP

Hàm mb_eregi() (multibyte ereg ignore case) thực hiện regex match không phân biệt chữ hoa/thường với hỗ trợ multibyte.

Lưu ý: Hàm này đã deprecated từ PHP 5.3.0 và xóa bỏ từ PHP 7.0.0. Nên dùng mb_ereg() với option 'i' hoặc preg_match() với modifier i thay thế.

Cú pháp (legacy)

bool mb_eregi(
    string $pattern,
    string $string,
    array &$matches = null
)

Tham số

  • $pattern – Pattern regex (ví dụ: "or").
  • $string – Chuỗi tìm kiếm.
  • $matches – Mảng chứa kết quả match (nếu có). Phần tử 0 = full match, 1,2... = capture groups.

Giá trị trả về

Trả về 1 nếu match, 0 nếu không match, false nếu lỗi.

Ví dụ (legacy)

<?php
mb_regex_encoding("UTF-8");
$result = mb_eregi("or", "Hello World");
var_dump($result);  // int(1) - match
?>

Thay thế hiện đại (PHP 7+)

<?php
// Cách 1: mb_ereg với option 'i'
$result = mb_ereg("or", "Hello World", $matches, "i");
var_dump($result, $matches);

// Cách 2: preg_match với modifier 'i' (PCRE, nhanh hơn, feature-rich)
$result = preg_match("/or/i", "Hello World", $matches);
var_dump($result, $matches);
?>

Lưu ý quan trọng

  • mb_eregi() dùng engine Oniguruma (regex engine của mbstring).
  • preg_match() dùng PCRE – khác syntax một chút (cần delimiter /.../).
  • Khuyến nghị: Dùng preg_match() cho đa số trường hợp, mb_ereg() chỉ khi cần tính năng Oniguruma đặc biệt.