Hàm preg_last_error
Hàm preg_last_error trả về mã lỗi cuối cùng,
xảy ra khi làm việc với các hàm xử lý biểu thức chính quy.
Điều này hữu ích cho việc gỡ lỗi biểu thức chính quy, khi các hàm
như preg_match hoặc preg_replace trả về false.
Hàm không nhận tham số.
Hàm trả về mã lỗi dạng số nguyên. Để thuận tiện, có thể so sánh mã lỗi với các hằng số đặc biệt (xem bảng dưới đây).
Cú pháp
preg_last_error(): int;
Bảng các hằng số lỗi
| Hằng số | Giá trị | Mô tả |
|---|---|---|
PREG_NO_ERROR |
0 | Không xảy ra lỗi |
PREG_INTERNAL_ERROR |
1 | Lỗi nội bộ PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Vượt quá giới hạn backtrack |
PREG_RECURSION_LIMIT_ERROR |
3 | Vượt quá giới hạn đệ quy |
PREG_BAD_UTF8_ERROR |
4 | Dữ liệu UTF-8 không hợp lệ |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Độ lệch không tương ứng với điểm bắt đầu của một mã UTF-8 hợp lệ |
PREG_JIT_STACKLIMIT_ERROR |
6 | Vượt quá giới hạn ngăn xếp của trình biên dịch JIT |
Ví dụ
Kiểm tra lỗi sau một biểu thức chính quy không hợp lệ:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Kết quả thực thi mã:
4
Ví dụ
Sử dụng với các hằng số lỗi PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Kết quả thực thi mã:
'Backtrack limit was exhausted'
Xem thêm
-
hàm
preg_match,
thực hiện tìm kiếm theo biểu thức chính quy -
hàm
preg_replace,
thực hiện thay thế theo biểu thức chính quy -
hàm
preg_quote,
thoát các ký tự đặc biệt trong biểu thức chính quy