- str_replace
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Замечание о порядке замены
- Смотрите также
- str_replace
- Parameters
- Return Values
- Examples
- Notes
- Replacement order gotcha
- See Also
- PHP str_replace
- PHP str_replace() function examples
- Simple PHP str_replace() function examples
- PHP str_replace() function with the count argument example
- PHP str_replace() function with multiple replacements example
- PHP str_ireplace() function
- Summary
str_replace
Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace .
Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace() .
Список параметров
Если search и replace — массивы, то str_replace() использует каждое значение из соответствующего массива для поиска и замены в subject . Если в массиве replace меньше элементов, чем в search , в качестве строки замены для оставшихся значений будет использована пустая строка. Если search — массив, а replace — строка, то эта строка замены будет использована для каждого элемента массива search . Обратный случай смысла не имеет.
Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.
Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.
Значение замены, будет использовано для замены искомых значений search . Для множества значений можно использовать массив.
Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).
Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject , а результатом функции также будет являться массив.
Если передан, то будет установлен в количество произведенных замен.
Возвращаемые значения
Эта функция возвращает строку или массив с замененными значениями.
Примеры
Пример #1 Примеры использования str_replace()
// присваивает: 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()
// Порядок замены
$str = «Строка 1\nСтрока 2\rСтрока 3\r\nСтрока 4\n» ;
$order = array( «\r\n» , «\n» , «\r» );
$replace = ‘
‘ ;
?php
// Обрабатывает сначала \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() для замены, нечувствительной к регистру.
Смотрите также
- str_ireplace() — Регистронезависимый вариант функции str_replace
- substr_replace() — Заменяет часть строки
- preg_replace() — Выполняет поиск и замену по регулярному выражению
- strtr() — Преобразует заданные символы или заменяет подстроки
str_replace
This function returns a string or an array with all occurrences of search in subject replaced with the given replace value.
To replace text based on a pattern rather than a fixed string, use preg_replace() .
Parameters
If search and replace are arrays, then str_replace() takes a value from each array and uses them to search and replace on subject . If replace has fewer values than search , then an empty string is used for the rest of replacement values. If search is an array and replace is a string, then this replacement string is used for every value of search . The converse would not make sense, though.
If search or replace are arrays, their elements are processed first to last.
The value being searched for, otherwise known as the needle. An array may be used to designate multiple needles.
The replacement value that replaces found search values. An array may be used to designate multiple replacements.
The string or array being searched and replaced on, otherwise known as the haystack.
If subject is an array, then the search and replace is performed with every entry of subject , and the return value is an array as well.
If passed, this will be set to the number of replacements performed.
Return Values
This function returns a string or an array with the replaced values.
Examples
Example #1 Basic str_replace() examples
// Provides: Hll Wrld f PHP
$vowels = array( «a» , «e» , «i» , «o» , «u» , «A» , «E» , «I» , «O» , «U» );
$onlyconsonants = str_replace ( $vowels , «» , «Hello World of PHP» );
// Provides: 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 );
// Provides: 2
$str = str_replace ( «ll» , «» , «good golly miss molly!» , $count );
echo $count ;
?>
Example #2 Examples of potential str_replace() gotchas
// Order of replacement
$str = «Line 1\nLine 2\rLine 3\r\nLine 4\n» ;
$order = array( «\r\n» , «\n» , «\r» );
$replace = ‘
‘ ;
?php
// Processes \r\n’s first so they aren’t converted twice.
$newstr = str_replace ( $order , $replace , $str );
// Outputs F because A is replaced with B, then B is replaced with C, and so on.
// Finally E is replaced with F, because of left to right replacements.
$search = array( ‘A’ , ‘B’ , ‘C’ , ‘D’ , ‘E’ );
$replace = array( ‘B’ , ‘C’ , ‘D’ , ‘E’ , ‘F’ );
$subject = ‘A’ ;
echo str_replace ( $search , $replace , $subject );
// Outputs: apearpearle pear
// For the same reason mentioned above
$letters = array( ‘a’ , ‘p’ );
$fruit = array( ‘apple’ , ‘pear’ );
$text = ‘a p’ ;
$output = str_replace ( $letters , $fruit , $text );
echo $output ;
?>
Notes
Note: This function is binary-safe.
Replacement order gotcha
Because str_replace() replaces left to right, it might replace a previously inserted value when doing multiple replacements. See also the examples in this document.
Note:
This function is case-sensitive. Use str_ireplace() for case-insensitive replace.
See Also
- str_ireplace() — Case-insensitive version of str_replace
- substr_replace() — Replace text within a portion of a string
- preg_replace() — Perform a regular expression search and replace
- strtr() — Translate characters or replace substrings
PHP str_replace
The PHP str_replace() function returns a new string with all occurrences of a substring replaced with another string.
The following shows the syntax of the str_replace() function:
str_replace ( array|string $search , array|string $replace , string|array $subject , int &$count = null ) : string|array
Code language: PHP (php)
The str_replace() has the following parameters:
- The $search is a substring to be replaced.
- The $replace is the replacement string that replaces the $search value.
- The $subject is the input string
- The $count returns the number of replacements that the function performed. The $count is optional.
If the $search and $replace arguments are arrays, the str_replace() takes each value from the $search array (from left to right) and replaces it with each value from the $replace array.
If the $replace array has fewer elements than the $search array, the str_replace() function uses an empty string for the replacement values.
If the $search is an array and the $replace is a string, then the str_replace() function replaces every element in the $search with the $replace string.
Note that the str_replace() doesn’t change the input string ( $subject ). It returns a new array with the $search replaced with the $replace .
PHP str_replace() function examples
Let’s take some examples of using the PHP str_replace() function.
Simple PHP str_replace() function examples
The following example uses the str_replace() function to replace the string ‘Hello’ with ‘Hi’ in the string ‘Hello there’ :
$str = 'Hello there'; $new_str = str_replace('Hello', 'Hi', $str); echo $new_str . '
'; // Hi there echo $str . '
'; // Hello there
Code language: PHP (php)
Hi there Hello there
Code language: PHP (php)
As shown in the output, the str_replace() doesn’t change the input string but returns a new string with the substring ‘Hello’ replaced by the string ‘Hi’ ;
The following example uses the str_replace() function to replace the substring ‘bye’ with the string ‘hey’ in the string ‘bye bye bye’ :
$str = 'bye bye bye'; $new_str = str_replace('bye', 'hey', $str); echo $new_str; // hey hey hey
Code language: PHP (php)
hey hey hey
Code language: PHP (php)
PHP str_replace() function with the count argument example
The following example uses the str_replace() function with the count argument:
$str = 'Hi, hi, hi'; $new_str = str_replace('hi', 'bye', $str, $count); echo $count; // 2
Code language: PHP (php)
In this example, the str_replace() function replaces the substring ‘hi’ with the string ‘bye’ in the string ‘Hi, hi, hi’ .
The count returns two because the str_replace() function only replaces the substring ‘hi’ not ‘Hi’ .
PHP str_replace() function with multiple replacements example
The following example uses the str_replace() function to replace the fox with wolf and dog with cat in the string ‘The quick brown fox jumps over the lazy dog’ :
$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;
Code language: PHP (php)
The quick brown wolf jumps over the lazy cat
Code language: PHP (php)
Since the str_replace() function replaces left to right, it might replace previously replaced value while doing multiple replacements. For example:
$str = 'apple'; $fruits = ['apple', 'orange', 'banana']; $replacements = ['orange', 'banana', 'strawberry']; $new_str = str_replace($fruits, $replacements, $str, $count); echo $new_str; // strawberry echo $count; // 3
Code language: PHP (php)
In this example, the string apple is replaced with orange, orange is replaced with banana, and banana is replaced with strawberry. The returned string is strawberry.
PHP str_ireplace() function
To search for a string case-insensitively and replace it with a replacement string, you use the str_ireplace() function. For example:
$str = 'Hi, hi, hi'; $new_str = str_ireplace('hi', 'bye', $str, $count); echo $new_str; // bye, bye, bye
Code language: PHP (php)
In this example, the str_ireplace() function replaces the substring ‘hi’ or ‘Hi’ with the string ‘bye’ .
Summary
- Use the str_replace() function to replace a substring with another string.
- Use the str_ireplace() function to search a substring case-insensitively and replace it with another string.