Dùng nhầm biểu thức chính quy

Dùng nhầm biểu thức chính quy

Biểu thức chính quy (Regular expressions) là công cụ mạnh để tìm và tổ chức dữ liệu, như là kiểm định địa chỉ e-mail hoặc kiểm tra một URL. Tuy nhiên, nó chậm hơn các công cụ của PHP trong một số tác vụ đơn giản.

Thí dụ, nếu bạn muốn viết hoa toàn bộ môt chuỗi, một lính mới của PHP có thể làm như sau:

Mã lệnh (PHP)

<?
$URL = “http://www.php.net”;
$fp = @fopen ($URL, “r”);
if (!$fp) {
die (“Cannot open website $URL!”);
}
while ($line = @fgets ($fp, 1024)){
$data .= $line;
}
@fclose ($fp)
or warn (“Cannot close website handle, $URL”);
$data = ereg_replace (“[a-z]”, “[A-Z]”, $data);
print $data;
?>

Tuy nhiên, sẽ phí thời gian khi bạn dùng hàm ereg_replace() (chậm hơn) để làm công việc mà strtoupper() (nhanh hơn) có thể thực hiện tốt hơn.

Mã lệnh (PHP)

$data = strtoupper ($data);

Nói chung, bạn luôn cố gắng dùng các thay thế đơn giản của biểu thức chính quy vì nó sẽ làm tăng khá nhiều tốc độ chương trình.

Các hàm cần biết
Có vài hàm rất thiết yếu để tiết kiệm thời gian thi hành chương trình khi dùng thay cho biểu thức chính quy. Dưới đây là danh sách các hàm thiết yếu đó:

strtoupper(); strtolower(); ucfirst(); strtr(); str_replace(); trim(); explode(); implode(); substr(); strcmp()

Nếu bạn thay thế các biểu thức chính quy của bạn bằng các hàm trên, bạn có thể trông đợi một sự nhảy vọt về hiệu năng, đặc biệt khi bạn làm việc với các chuỗi lớn.