Topic: PHP: Как заменить только первое совпадение в строке
В PHP есть функция «str_replace()», которая находит определенную строку и заменяет её на другую, причём, если эта строка поиска встречается много раз, то будут заменены все найденные вхождения.
Порой нам нужно заменять только 1-е найденное вхождение.
Такой функции нет, но для нас не составит труда её написать.
PHP: Как заменить только первое совпадение в строке
Идея такая: сначала мы ищем первое вхождение нашей строчку, и если находим его — то вырезаем и заменяем необходимой строкой.
function str_replace_once($search, $replace, $text)
{
$pos = strpos($text, $search);
return $pos!==false ? substr_replace($text, $replace, $pos, strlen($search)) : $text;
}
Интерфейс функции «str_replace_once()» такой же как и у «str_replace()».
Пример использования:
$str = 'Как заменить только первое совпадение в строке? Как заменить?';
$str = str_replace_once('заменить', 'подменить', $str);
// $str = 'Как подменить только первое совпадение в строке? Как заменить?';
1 аргумент - ищем что нужно заменить
2 аргумент - на что заменяем
Источник здесь