(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";
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
Замечание: Эта функция безопасна для обработки данных в двоичной форме.