Отличие функции strreplace от регулярного выражения pregreplace заключается в том, что они выполняют разные задачи:
- str_replace ищет в строке все вхождения заданной подстроки и заменяет их новой подстрокой. i-vd.org.ru Например, если подстрока «foo», то она будет соответствовать только себе и заменяться на себя же. stackoverflow.com
- preg_replace выполняет поиск по шаблону с последующей заменой на указанную строку. otus.ru В качестве первого параметра здесь принимается не просто строка, а регулярное выражение. otus.ru Например, шаблон ”/f.{2}/” будет соответствовать и заменять не только «foo», но и «fey», «fir», «fox», «f12» и другие. stackoverflow.com
Таким образом, strreplace заменяет конкретное вхождение строки, а pregreplace — выполняет поиск и замену по неопределённому шаблону с помощью регулярных выражений. stackoverflow.com