str_replace
Заменяет вхождения строки поиска строкой замены
&reftitle.description;
stringarraystr_replace
arraystringsearch
arraystringreplace
stringarraysubject
intcount&null;
Функция возвращает строку или массив, в котором заменила
вхождения search в subject
значением replace.
Замену текста на основе шаблона, а не фиксированной строки,
выполняют функцией preg_replace.
&reftitle.parameters;
Если параметры search и replace —
массивы, функция str_replace возьмёт
значение из каждого массива для поиска и замены
во входной строке subject.
Если в массиве replace значений меньше, чем
в массиве search, функция заменит остальные
значения пустой строкой.
Функция заменит строкой замены каждое значение
массива search, если параметр
search — массив, а параметр
replace — строка. Обратное не имело бы смысла.
Если параметры search
или replace — массивы, функция обработает
элементы массивов от первого к последнему.
search
Искомое значение, которое знают также как needle:
иголку, которую требуется найти в стоге сена. В параметр передают массив
значений, когда требуется найти несколько «иголок» одновременно.
replace
Значение замены, которым функция заменит значения
search, которые найдёт.
В параметр передают массив значений, когда требуется выполнить несколько замен.
subject
Строка или массив для поиска и замены,
которые знают также как haystack: стог сена,
в котором требуется найти иголку.
Функция выполнит поиск и замену с каждым элементом массива
subject, если параметр subject —
массив, и результат тоже будет массивом.
count
Функция установит для этого параметра количество замен, если аргумент передали.
&reftitle.returnvalues;
Функция возвращает строку или массив с заменёнными значениями.
&reftitle.examples;
Примеры использования функции str_replace
$bodytag = str_replace("%body%", "black", "");
echo $bodytag, PHP_EOL;
// Даёт: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
echo $onlyconsonants, PHP_EOL;
// Даёт: 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);
echo $newphrase, PHP_EOL;
// Даёт: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count, PHP_EOL;
?>
]]>
Примеры неочевидного поведения функции str_replace
';
// Сначала обработаем последовательности символов \r\n, чтобы значения замены не появились дважды
echo $newstr = str_replace($order, $replace, $str);
echo $newstr, PHP_EOL;
// Выводит 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), PHP_EOL;
// Выводит: яблорехкорех орех по той же причине
$letters = array('я', 'о');
$fruit = array('яблоко', 'орех');
$text = 'я о';
$output = str_replace($letters, $fruit, $text);
echo $output, PHP_EOL;
?>
]]>
&reftitle.notes;
¬e.bin-safe;
Замечание о порядке замены
При множественных заменах функция str_replace заменит значение,
которое вставила на предыдущем шаге, очередным значением, поскольку
заменяет значения слева направо.
Примеры на этой странице показывают порядок замены.
Функция чувствительна к регистру. Замену без учёта регистра
выполняет функция str_ireplace.
&reftitle.seealso;
str_ireplace
substr_replace
preg_replace
strtr