Предположим есть строка:
$str = '0123456789';
Что нужно: удалить символы с позицией 2-4 (2,3,4 - это позиция а не часть строки) и вместо них вставить строку: '!!'.
Результирующая строка:
$str = '01!!56789';
Сразу скажу что хотелось бы услышать оптимальный вариант, существует ли такой или нет (может есть уже функция реализующая подобное).
Накостылять я и сам могу :) Но в любом случае, любое адекватное предложение плюсану.
Шаблон: '~(?<=\w{2})\w{3}(\w*)~', где (?<=\w{2}) - поиск позиции (слева от нужной позиции 2 символа); \w{3} - 3 заменяемых символа; (\w*) - оставшаяся часть строки.
$str = 'qwertyuiop';
$pattern = '~(?<=\w{2})\w{3}(\w*)~';
$replace = '!!$1';
echo preg_replace($pattern, $replace, $str);
// qw!!yuiop
Вот походу идеальная функция, которая мне нужна.
http://php.net/manual/ru/function.substr-replace.php
Продвижение своими сайтами как стратегия роста и независимости