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