Мне нужна функция замены строки один раз, и я считаю, что 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
Может кто-нибудь уточнить решение?