В этой короткой заметке, приведу пример функции, которая позволит заменить только первое совпадение в строке.
За основу мы берем стандартную str_replace. Интерфейс новой функции в точности повторяет исходную — разница лишь в том, что замена производится лишь для первого совпадения.
function str_replace_once($search, $replace, $text)
{
$pos = strpos($text, $search);
return $pos!==false ? substr_replace($text, $replace, $pos, strlen($search)) : $text;
}
Пример вызова следующий:
$data = ‘Helo People!’;
$data = str_replace_once(‘l’, ‘ll’, $data);
// $data = ‘Hello People!’;