#2
Som både #3 og #4 skriver, så er det mere resorucekrævende.
Udover det vil preg_ funktionerne også være størst anvendelig når det er et dynamísk mønster du gerne vil søge og erstatte efter.
str_replace() gør det nemt at erstatte et ord eller flere ad gangen (funktionen er nemlig meget tilgivende) og så er den ikke omfattet af de ændringer der er på vej.
Se dynamikken i funktionen:
$string = "Dette er foo - Hello World";
$string = str_replace("foo", "bar", $string);
// string bliver "Dette er bar - Hello World"
...
$string = "Dette er foo - Hello World"
$search_array = array("foo", "World");
$string = str_replace($search_array, "bar", $string);
// string bliver "Dette er bar - Hello bar"
...
$string = "Dette er foo - Hello World"
$search_array = array("foo", "World");
$replace_array = array("foo", "Venus");
$string = str_replace($search_array, $replace_array, $string);
// string bliver "Dette er bar - Hello Venus"