substr_replace

(PHP 4, PHP 5, PHP 7, PHP 8)

substr_replaceЗаменяет часть строки

Описание

substr_replace(
    array|string $string,
    array|string $replace,
    array|int $offset,
    array|int|null $length = null
): string|array

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

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также