substr_replace
(PHP 4, PHP 5, PHP 7)
substr_replace — Заменяет часть строки
Описание
$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
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- str_replace() - Заменяет все вхождения строки поиска на строку замены
- substr() - Возвращает подстроку
- Доступ к символу в строке и его изменение