Заменяйте строку только один раз с помощью php preg_replace

Мне нужна функция замены после функции и считаю, что preg_match может быть моим лучшим выбором.

Я использовал это, но из-за динамичности использования иногда эта функция ведет себя странно:

function str_replace_once($remove , $replace , $string) { $pos = strpos($string, $remove); if ($pos === false) { // Nothing found return $string; } return substr_replace($string, $replace, $pos, strlen($remove)); } 

Теперь я использую этот подход, но столкнулся с ошибкой, указанной ниже. Я обрабатываю все типы html-строк с помощью этой функции, поэтому ее трудно дать значение, вызывающее ошибку. На данный момент 80% моих применений ниже показывают эту ошибку.

 function str_replace_once($remove , $replace , $string) { $remove = str_replace('/','\/',$remove); $return = preg_replace("/$remove/", $replace, $string, 1); return $return; } 

ошибка:

Предупреждение: preg_replace () [function.preg-replace]: Ошибка компиляции: ничего не повторять при смещении 0

Может ли кто-нибудь уточнить решение?

Solutions Collecting From Web of "Заменяйте строку только один раз с помощью php preg_replace"