Функция PHP str_replace() возвращает новую строку, в которой все вхождения подстроки заменены другой строкой. Ниже показан синтаксис функции str_replace():
str_replace (
array|string $search ,
array|string $replace ,
string|array $subject ,
int &$count = null
) : string|array
Функция str_replace() имеет следующие параметры:
Если аргументы $search и $replace являются массивами, str_replace() берет каждое значение из массива $search (слева направо) и заменяет его каждым значением из массива $replace.
Если в массиве $replace меньше элементов, чем в массиве $search, функция str_replace() использует пустую строку для значений замены.
Обратите внимание, что str_replace() не изменяет входную строку ($subject). Он возвращает новую строку/массив с заменой $search на $replace.
Давайте рассмотрим несколько примеров использования функции PHP str_replace().
В следующем примере функция str_replace () используется для замены строки «Hello» на «Hi» в строке «Hello there»:
<?php
$str = 'Hello there';
$new_str = str_replace('Hello', 'Hi', $str);
echo $new_str . '<br>'; // Hi there
echo $str . '<br>'; // Hello there
Как показано в выходных данных, str_replace () не изменяет входную строку, а возвращает новую строку с подстрокой «Hello», замененной строкой «Hi»;
В следующем примере функция str_replace () используется для замены подстроки 'bye' на строку 'hey' в строке 'bye bye bye':
<?php
$str = 'bye bye bye';
$new_str = str_replace('bye', 'hey', $str);
echo $new_str; // hey hey hey
<?php
$str = 'Hi, hi, hi';
$new_str = str_replace('hi', 'bye', $str, $count);
echo $count; // 2
В следующем примере функция str_replace() используется для замены "fox"на "wolf"и "dog"на "cat"в строке «The quick brown fox jumps over the lazy dog»:
<?php
$str = 'The quick brown fox jumps over the lazy dog';
$animals = ['fox', 'dog'];
$new_animals = ['wolf', 'cat'];
$new_str = str_replace($animals, $new_animals, $str);
echo $new_str;
Вывод:
The quick brown wolf jumps over the lazy cat
Поскольку функция str_replace() заменяет слева направо, она может заменить ранее замененное значение при выполнении нескольких замен. Например:
<?php
$str = 'apple';
$fruits = ['apple', 'orange', 'banana'];
$replacements = ['orange', 'banana', 'strawberry'];
$new_str = str_replace($fruits, $replacements, $str, $count);
echo $new_str; // strawberry
echo $count; //
В этом примере apple заменяется на orange, orange на banana, а banana на strawberry. Возвращенная строка - strawberry.
Чтобы искать строку без учета регистра и заменять ее заменяющей строкой, необходимо использовать функцию str_ireplace(). Например: