Tôi chỉ cần chạy một bên microtime benchmark bên cạnh 50 lần so với preg_match
trong một tuyên bố if
và filter_var_array
chứng thực dữ liệu chính xác cùng một thiết lập lại, đây là những kết quả microtime:
filter_var_array
microtime: 0.000834226608276
preg_match
microtime: 0.000180006027222
filter_var_array
trông đẹp, nhưng là từ 4 đến 8 lần chậm hơn preg_match
vì vậy nếu bạn có trang web lưu lượng truy cập cao và thích mã nhanh hơn, tôi sẽ giới thiệu preg_match
.
Tuy nhiên, nếu bạn thích mã sạch đẹp và không thực sự quan tâm đến cách chạy, hãy sử dụng filter_var_array
có thể quản lý dễ dàng hơn để áp dụng bộ lọc dễ dàng trên nhiều yêu cầu và đầu vào.
Nhưng loại này một cách dễ dàng cũng có thể đạt được bằng cách viết một hàm preg_match
cho các kịch bản khác nhau như email hay chữ nhưng phải ghi nhớ preg_match
an ninh khi viết regex ví dụ:
http://blog.php-security.org/archives/76-Holes-in-most-preg_match-filters.html
tôi sẽ thích nhìn thấy từ bi sử dụng bộ nhớ trên cả hai.
Hope this helps
Nguồn
2013-11-12 23:38:37
sử dụng php_filter bất cứ lúc nào bạn có thể, đó là xây dựng-in (ít nhanh hơn và bạn có chắc bạn sử dụng xác nhận bên phải), nếu bạn không thể tìm thấy những gì bạn cần, sau đó sử dụng một tùy chỉnh một. –
Tôi không nói về các chức năng tùy chỉnh, vì chức năng tích hợp sẵn sẽ luôn nhanh hơn. Tôi đã nói về các bộ lọc mà đã có một thay thế chức năng php bản địa. – Tiddo
Tôi hiểu, nhưng nếu bạn sử dụng một preg_match, bạn sẽ phải tùy chỉnh regexp - Tôi nên nói, regexp tùy chỉnh với preg_match xin lỗi về sự nhầm lẫn –