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.0length теперь допускает значение null.

Примеры

Пример #1 Простой пример использования substr_replace()

<?php
$var
= 'ABCDEFGH:/MNRPQR/';
echo
"Оригинал: $var<hr />\n";


echo substr_replace($var, 'bob', 0) . "<br />\n";
echo
substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";


echo substr_replace($var, 'bob', 0, 0) . "<br />\n";


echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo
substr_replace($var, 'bob', -7, -1) . "<br />\n";


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

Примечания

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

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

To Top