有人可以快速总结一下差异吗?
在我看来,他们都做同样的事情?
由于
答案 0 :(得分:42)
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:bar fighters,preg_replace:bar barhters
:)
答案 1 :(得分:13)
str_replace
只会将另一个固定字符串替换为固定字符串,速度会快得多。
正则表达式函数允许您搜索并替换为名为regular expression的非固定模式。有许多口味"正则表达式大多相似但有一定的细节不同;我们在这里讨论的是Perl兼容正则表达式(PCRE)。
如果它们看起来一样,那么您应该使用str_replace
。
答案 2 :(得分:4)
str_replace
搜索纯文本,而preg_replace
搜索模式。