(PHP 4, PHP 5, PHP 7, PHP 8)
substr_replace — Заменяет часть строки
$string,$replace,$offset,$length = null
substr_replace() заменяет часть строки
string, начинающуюся с символа с порядковым
номером offset и (необязательной) длиной
length, строкой
replace и возвращает результат.
stringВходная строка.
Также можно указать массив строк, в этом случае замены будут
происходить с каждой предоставленной строкой. В этом случае
параметры replace,
offset и length
могут быть как скалярными значениями - в этом случае эти значения
будут применены к каждой строке, так и массивами - в этом
случае соответствующие элементы массивов будут применены к
каждой предоставленной строке.
replaceСтрока замены.
offset
Если offset положителен, замена
начинается с символа с порядковым номером offset
строки string.
Если offset отрицателен, замена
начинается с символа с порядковым номером
offset, считая от конца строки
string.
length
Если аргумент положителен, то он представляет собой длину
заменяемой подстроки в строке string.
Если этот аргумент отрицательный, он определяет количество
символов от конца строки string, на
которых заканчивается замена. Этот аргумент необязателен и по
умолчанию равен strlen(string);, то есть замена
до конца строки string.
Разумеется, если length равен нулю,
то это эквивалентно вставке replace
в string на указанной позиции
offset.
Возвращает результирующую строку. Если string
является массивом, то возвращает массив.
| Версия | Описание |
|---|---|
| 8.0.0 |
length теперь допускает значение null.
|
Пример #1 Простой пример использования substr_replace()
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Оригинал: $var<hr />\n";
/* Обе следующих строки заменяют всю строку $var на 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
/* Вставляет 'bob' в начало $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
/* Обе следующих строки заменяют 'MNRPQR' в $var на 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
/* Удаляет 'MNRPQR' из $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>
Пример #2 Использование substr_replace() для одновременной множественной замены строк
<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');
// Простой случай: заменяем XXX на YYY в каждой строке.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";
// Более сложный случай с уникальными заменами.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";
// Замены с разными количествами символов.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>Результат выполнения приведённого примера:
A: YYY; B: YYY; C: YYY A: AAA; B: BBB; C: CCC A: AAAXX; B: BBBX; C: CCC
Замечание: Функция безопасна для обработки данных в двоичной форме.