Разница между функциями pregreplace и pregreplacecallback заключается в том, что pregreplace выполняет простой поиск и замену по регулярному выражению, а pregreplacecallback позволяет делать интеллектуальную замену. 15
Функция preg_replace возвращает новую версию строки, если найдены совпадения, иначе — нетронутую строку. 1
Функция pregreplacecallback вызывает функцию, которой передаётся совпавшая строка, и эта функция уже возвращает строку с заменой. 1 Вместо элементарной замены функция может, например, делать дополнительную проверку полученных данных и уже на основе принятого решения выполнять ту или иную замену. 1
Таким образом, pregreplace используется для простого поиска и замены, а pregreplace_callback — для более сложных манипуляций с найденными кусочками. 35