Может ли кто-нибудь дать мне краткое изложение различий, пожалуйста?
На мой взгляд, они оба делают то же самое?
благодаря
str_replace
заменяет определенное вхождение строки, например, «foo» будет соответствовать и заменять это: «foo». preg_replace
будет выполнять регулярное выражение, например, «/f.{2}/» будет соответствовать и заменять «foo», но также «fey», «fir», «fox», «f12» и т. д.
[РЕДАКТИРОВАТЬ]
Посмотреть на себя:
$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
🙂
str_replace
просто заменит фиксированную строку другой фиксированной строкой, и она будет намного быстрее.
Функции регулярного выражения позволяют вам искать и заменять нефиксированным шаблоном, называемым регулярным выражением . Существует много «ароматов» регулярного выражения, которые в основном сходны, но имеют некоторые особенности; тот, о котором мы говорим, это Perl Compatible Regular Equions ( PCRE ).
Если они выглядят одинаково для вас, вы должны использовать str_replace
.
str_replace
ищет чистые текстовые вхождения, а preg_replace
для шаблонов.