- 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
- Список параметров
- Возвращаемые значения
- Примеры
- Примечания
- Замечание о порядке замены
- Смотрите также
- str_ireplace
- Список параметров
- Возвращаемые значения
- Список изменений
- Примеры
- Примечания
- Замечание о порядке замены
- Смотрите также
- User Contributed Notes 11 notes
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.
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_ireplace
Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace (без учёта регистра символов).
Чтобы заменить текст на основе шаблона, а не фиксированной строки, используйте функцию preg_replace() с модификатором шаблона i .
Список параметров
Если search и replace — массивы, то str_ireplace() использует каждое значение из соответствующего массива для поиска и замены в subject . Если в массиве replace меньше элементов, чем в search , в качестве строки замены для оставшихся значений будет использована пустая строка. Если search — массив, а replace — строка, то эта строка замены будет использована для каждого элемента массива search . Обратный случай смысла не имеет.
Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.
Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.
Значение замены, будет использовано для замены искомых значений search . Для множества значений можно использовать массив.
Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).
Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject , а результатом функции также будет являться массив.
Если передан, то будет установлен в количество произведённых замен.
Возвращаемые значения
Возвращает строку или массив с заменёнными значениями.
Список изменений
Версия | Описание |
---|---|
8.2.0 | Преобразование регистра больше не зависит от локали, установленной с помощью функции setlocale() . Будут преобразованы только символы ASCII. Байты не ASCII-кодировке будут сравниваться по значению байта. |
Примеры
Пример #1 Пример использования str_ireplace()
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Замечание о порядке замены
Так как str_ireplace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Пример №2 в документации str_replace() поясняет как это работает на практике.
Смотрите также
- str_replace() — Заменяет все вхождения строки поиска на строку замены
- preg_replace() — Выполняет поиск и замену по регулярному выражению
- strtr() — Преобразует заданные символы или заменяет подстроки
User Contributed Notes 11 notes
Here’s a different approach to search result keyword highlighting that will match all keyword sub strings in a case insensitive manner and preserve case in the returned text. This solution first grabs all matches within $haystack in a case insensitive manner, and the secondly loops through each of those matched sub strings and applies a case sensitive replace in $haystack. This way each unique (in terms of case) instance of $needle is operated on individually allowing a case sensitive replace to be done in order to preserve the original case of each unique instance of $needle.
function highlightStr ( $haystack , $needle , $highlightColorValue ) // return $haystack if there is no highlight color or strings given, nothing to do.
if ( strlen ( $highlightColorValue ) < 1 || strlen ( $haystack ) < 1 || strlen ( $needle ) < 1 ) return $haystack ;
>
preg_match_all ( «/ $needle +/i» , $haystack , $matches );
if ( is_array ( $matches [ 0 ]) && count ( $matches [ 0 ]) >= 1 ) foreach ( $matches [ 0 ] as $match ) $haystack = str_replace ( $match , ‘. $highlightColorValue . ‘;»>’ . $match . ‘‘ , $haystack );
>
>
return $haystack ;
>
?>
here’s a neat little function I whipped up to do HTML color coding of SQL strings.
/**
* Output the HTML debugging string in color coded glory for a sql query
* This is very nice for being able to see many SQL queries
* @access public
* @return void. prints HTML color coded string of the input $query.
* @param string $query The SQL query to be executed.
* @author Daevid Vincent [daevid@LockdownNetworks.com]
* @version 1.0
* @date 04/05/05
* @todo highlight SQL functions.
*/
function SQL_DEBUG ( $query )
<
if( $query == » ) return 0 ;
global $SQL_INT ;
if( !isset( $SQL_INT ) ) $SQL_INT = 0 ;
//[dv] this has to come first or you will have goofy results later.
$query = preg_replace ( «/[‘\»]([^’\»]*)[‘\»]/i» , «‘$1‘» , $query , — 1 );