1 (edited by PunBB 2016.05.04 11:50)

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 аргумент - на что заменяем

Источник здесь