PHP preg_replace/preg_match vs PHP str_replace
Может ли кто-нибудь дать мне краткое изложение различий, пожалуйста?
На мой взгляд, они оба делают одно и то же?
Спасибо
Ответы
Ответ 1
str_replace
заменяет определенное вхождение строки, например, "foo" будет соответствовать и заменять это: "foo" . preg_replace
будет выполнять регулярное выражение, например, "/f.{2}/" будет соответствовать и заменять "foo" , но также "fey", "fir", "fox", "f12" и т.д.
[EDIT]
Смотрите сами:
$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;
Вывод:
str_replace: барабанные бойцы, preg_replace: bar barhters
:)
Ответ 2
str_replace
просто заменит фиксированную строку другой фиксированной строкой, и она будет намного быстрее.
Функции регулярных выражений позволяют вам искать и заменять нефиксированный шаблон, называемый регулярным выражением . Существует много" ароматов "регулярного выражения, которые в основном сходны, но имеют некоторые особенности; то, о котором мы говорим, это Perl Compatible Regular Expressions ( PCRE).
Если они выглядят одинаково для вас, вы должны использовать str_replace
.
Ответ 3
str_replace
ищет чисто текстовые вхождения, а preg_replace
- для шаблонов.