Tối ưu hóa việc sử dụng biểu thức chính quy trong PHP
Biểu thức chính quy là một thứ rất nặng và hoạt động tương đối chậm. Khi có một giải pháp thay thế, nên sử dụng chính giải pháp đó.
Hãy xem một ví dụ. Giả sử chúng ta cần kiểm tra xem một chuỗi có bắt đầu bằng dấu chấm than hay không. Một lập trình viên nào đó đã giải quyết nhiệm vụ này bằng biểu thức chính quy:
<?php
if (preg_match('#^!#', $str)) {
echo 'có';
} else {
echo 'không';
}
?>
Tuy nhiên, nhiệm vụ như vậy có một giải pháp hoạt động nhanh hơn nhiều:
<?php
if ($str[0] == '!') {
echo 'có';
} else {
echo 'không';
}
?>
Biểu thức chính quy rất nặng và hoạt động tương đối chậm. Luôn luôn, khi có giải pháp thay thế, nên sử dụng chính giải pháp đó.
Trong đoạn mã sau, một lập trình viên đang kiểm tra xem
trong chuỗi có chứa chuỗi con '333' hay không.
Hãy tối ưu hóa giải pháp của lập trình viên này.
Đây là mã:
<?php
$str = '1233345';
if (preg_match('#333#', $str)) {
echo 'có';
} else {
echo 'không';
}
?>
Trong đoạn mã sau, một lập trình viên đang kiểm tra xem
chuỗi có kết thúc bằng .html hay không.
Hãy tối ưu hóa giải pháp của lập trình viên này.
Đây là mã:
<?php
$str = 'index.html';
if (preg_match('#\.html$#', $str)) {
echo 'có';
} else {
echo 'không';
}
?>
Hãy viết mã để kiểm tra xem một chuỗi
có kết thúc bằng .png hoặc .jpg hay không.