Có ai có thể cho tôi bản tóm tắt nhanh về sự khác biệt không?PHP preg_replace/preg_match vs PHP str_replace
Đối với tôi, cả hai đều làm điều tương tự?
Cảm ơn
Có ai có thể cho tôi bản tóm tắt nhanh về sự khác biệt không?PHP preg_replace/preg_match vs PHP str_replace
Đối với tôi, cả hai đều làm điều tương tự?
Cảm ơn
str_replace
thay thế một sự xuất hiện cụ thể của một chuỗi, ví dụ "foo" sẽ chỉ khớp và thay thế: "foo". preg_replace
sẽ thực hiện đối sánh cụm từ thông dụng, ví dụ "/f.{2}/" sẽ khớp và thay thế "foo", nhưng cũng "fey", "fir", "fox", "f12", v.v.
[EDIT]
Xem cho chính mình:
$string = "foo fighters";
$str_replace = str_replace('foo','bar',$string);
$preg_replace = preg_replace('/f.{2}/','bar',$string);
echo 'str_replace: ' . $str_replace . ', preg_replace: ' . $preg_replace;
Đầu ra là:
str_replace: máy bay chiến đấu thanh, preg_replace: barhters thanh
:)
str_replace
sẽ chỉ thay thế một chuỗi cố định với một chuỗi cố định, và nó sẽ nhanh hơn nhiều.
Chức năng biểu thức chính quy cho phép bạn tìm kiếm và thay thế bằng một mẫu không cố định được gọi là regular expression. Có rất nhiều "hương vị" của biểu thức chính quy mà chủ yếu là tương tự nhưng có chi tiết nhất định khác nhau; một trong những chúng tôi đang nói về ở đây là Perl Tương thích Regular Expressions (PCRE).
Nếu chúng trông giống như bạn, thì bạn nên sử dụng str_replace
.
cũng tốt cho tìm kiếm động trong các mẫu bạn không biết, nhưng nếu bạn biết mẫu (ngay cả khi đang chạy) bạn có thể tạo nút ngay sau đó và làm str_ trừ khi bạn muốn các phần khác nhau được bắt cùng một lúc . – My1
str_replace
tìm kiếm xuất hiện văn bản thuần túy trong khi preg_replace
cho mẫu.
Hmm, không thực sự nhìn thấy một lợi thế preg_replace, có vẻ như một hit'n'miss nhỏ! – benhowdle89
Bạn không hỏi về lợi thế, mà là sự khác biệt giữa hai loại: D – mingos
Không phàn nàn! Chỉ cần quan sát ... – benhowdle89