(PHP 4, PHP 5, PHP 7)
str_replace — Заменяет все вхождения строки поиска на строку замены
Эта функция возвращает строку или массив, в котором все
вхождения search в subject
заменены на replace.
Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace().
Если search и replace
- массивы, то str_replace() использует каждое
значение из соответствующего массива для поиска и замены в
subject. Если в массиве
replace меньше элементов, чем в
search, в качестве строки замены для
оставшихся значений будет использована пустая строка.
Если search - массив, а
replace - строка, то
эта строка замены будет использована для каждого элемента
массива search. Обратный случай смысла
не имеет.
Если search или
replace являются массивами, их элементы
будут обработаны от первого к последнему.
searchИскомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.
replace
Значение замены, будет использовано для замены искомых значений
search. Для множества значений можно использовать
массив.
subjectСтрока или массив, в котором производится поиск и замена, также известный как haystack (стог сена).
Если subject является массивом, то поиск
с заменой будет осуществляться над каждым элементом
subject, а результатом функции также
будет являться массив.
countЕсли передан, то будет установлен в количество произведенных замен.
Эта функция возвращает строку или массив с замененными значениями.
Пример #1 Примеры использования str_replace()
<?php
// присваивает <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// присваивает: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// присваивает: You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// присваивает: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>
Пример #2 Примеры потенциальных трюков с str_replace()
<?php
// Порядок замены
$str = "Строка 1\nСтрока 2\rСтрока 3\r\nСтрока 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// Обрабатывает сначала \r\n для избежания их повторной замены.
echo $newstr = str_replace($order, $replace, $str);
// Выводит F, т.к. A заменяется на B, затем B на C, и так далее...
// В итоге E будет заменено F, так как замена происходит слева направо.
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// Выводит: яблорехкорех орех (по вышеуказанной причине)
$letters = array('я', 'о');
$fruit = array('яблоко', 'орех');
$text = 'я о';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Так как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Смотрите также примеры на этой странице.
Замечание:
Эта функция чувствительна к регистру. Используйте str_ireplace() для замены, нечувствительной к регистру.