Замена строки php массив

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|arrayCode 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 .

Читайте также:  Метод сортировки массива javascript

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 thereCode 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 heyCode language: PHP (php)
hey hey heyCode 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; // 2Code 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 catCode 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; // 3Code 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, byeCode 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 = ‘
‘ ;

// Обрабатывает сначала \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 );

Источник

Оцените статью