Замена строки другой строкой. Функции str_replace() и substr_replace() в PHP


Функции str_replace() и substr_replace() в PHP позволяют осуществлять замену строки/подстроки другой строкой. Рассмотрим их по-подробнее.

str_replace()

str_replace() — заменяет искомую строку в строке (а также в строке, являющейся элементом массива).

Общий синтаксис данной функции:

1
mixed str_replace (mixed search, mixed replace, mixed subject [, int &count])

где:

search — искомая строка или массив строк
replace — строка замены или массив строк для замены
subject — элемент, в котором осуществляется поиск (может быть строка или массив)
count — количество замен (необязательный параметр)

Простейший пример:

1
2
3
<?php
$resultStr = str_replace("o", "", "Hello");
echo $resultStr; // выведет "Hell"

Так как в качестве параметров могут быть строки, то возможны вариации:

1. Первый параметр и второй являются массивами. В этом случае при поиске будут перебираться все элементы массива search и для замены будет браться соответствующий элемент из массива replace. Пример:

1
2
3
<?php
$resultStr = str_replace(array("e", "0"), array("i", "a"), "Hello");
echo $resultStr; // выведет "Hilla", т.к. "e" будет заменено на "i", а "o" на "a"

Если во втором массиве количество элементов меньше, чем в первом, то недостающие элементы будут заменены на пустые строки.

2. Первый параметр массив искомых строк, а второй параметр — строка. В этом случае также будут перебираться все элементы из массива для поиска, и каждый найденный элемент будет заменен вторым параметром — строкой.

1
2
3
<?php
$resultStr = str_replace(array("e", "0"), "a", "Hello");
echo $resultStr; // выведет "Halla"

substr_replace()

Функция substr_replace() позволяет заменять часть строки в строке.

Синтаксис:

1
string substr_replace ( string baseString, string strReplacement, int start [, int length] )

где:

baseString — строка, в которой происходит замена
strReplacement — строка для замена
start — индекс символа в строке, с которого начинать замену
length — количество заменяемых символов (необязательный параметр)

Проще говоря, мы указываем, с какой буквы в строке по какую заменить нужной строкой. Если длина не указана, то замена происходит до конца строки. Если этот параметр — отрицательное число, то отсчет ведется с конца строки (при этом параметр start тоже отрицательное число).

Пример:

1
2
3
<?php
$resultStr = substr_replace("Hello world!", "aaa", 1, 3);
echo $resultStr; // выведет "Haaao world!"




Другие посты

Категория: PHP-скрипты

Оставить комментарий