Функция str_replace
Функция str_replace ищет в строке заданный текст и меняет его на другой. Первым параметром функция принимает то, что меняем, а вторым — на что меняем. Это могут быть две строки или два массива. Во втором случае соответствующие элементы одного массива заменятся на соответствующие элементы второго массива (см. примеры).
Есть также функция str_ireplace , которая делает тоже самое, но без учета регистра.
Синтаксис
str_replace(что меняем, на что меняем, где меняем);
Пример
Давайте заменим все буквы ‘a’ на ‘!’ :
Результат выполнения кода:
Пример
Давайте заменим все буквы ‘a’ на 1 , буквы ‘b’ на 2 , буквы ‘c’ на 3 :
Результат выполнения кода:
Смотрите также
- функцию strtr ,
которая также осуществляет поиск и замену
substr_replace
substr_replace() заменяет часть строки string , начинающуюся с символа с порядковым номером start и (необязательной) длиной length , строкой replacement и возвращает результат.
Список параметров
Также можно указать массив строк, в этом случае замены будут происходить с каждой предоставленной строкой. В этом случае параметры replacement , start и length могут быть как скалярными значениями — в этом случае эти значения будут применены к каждой строке, так и массивами — в этом случае соответствующие элементы массивов будут применены к каждой предоставленной строке.
Если start положителен, замена начинается с символа с порядковым номером start строки string .
Если start отрицателен, замена начинается с символа с порядковым номером start , считая от конца строки string .
Если аргумент положителен, то он представляет собой длину заменяемой подстроки в строке string . Если этот аргумент отрицательный, он определяет количество символов от конца строки string , на которых заканчивается замена. Этот аргумент необязателен и по умолчанию равен strlen( string );, т.е. замена до конца строки string . Разумеется, если length равен нулю, то это эквивалентно вставке replacement в string на указанной позиции start .
Возвращаемые значения
Возвращает результирующую строку. Если string является массивом, то возвращает массив.
Примеры
Пример #1 Простой пример использования substr_replace()
/* Обе следующих строки заменяют всю строку $var на ‘bob’. */
echo substr_replace ( $var , ‘bob’ , 0 ) . «
\n» ;
echo substr_replace ( $var , ‘bob’ , 0 , strlen ( $var )) . «
\n» ;
/* Вставляет ‘bob’ в начало $var. */
echo substr_replace ( $var , ‘bob’ , 0 , 0 ) . «
\n» ;
/* Обе следующих строки заменяют ‘MNRPQR’ in $var на ‘bob’. */
echo substr_replace ( $var , ‘bob’ , 10 , — 1 ) . «
\n» ;
echo substr_replace ( $var , ‘bob’ , — 7 , — 1 ) . «
\n» ;
/* Удаляет ‘MNRPQR’ из $var. */
echo substr_replace ( $var , » , 10 , — 1 ) . «
\n» ;
?>
Пример #2 Использование substr_replace() для одновременной множественной замены строк
// Простой случай: заменяем XXX на YYY в каждой строке.
echo implode ( ‘; ‘ , substr_replace ( $input , ‘YYY’ , 3 , 3 )). «\n» ;
// Более сложный случай с уникальными заменами.
$replace = array( ‘AAA’ , ‘BBB’ , ‘CCC’ );
echo implode ( ‘; ‘ , substr_replace ( $input , $replace , 3 , 3 )). «\n» ;
// Замены с разными количествами символов.
$length = array( 1 , 2 , 3 );
echo implode ( ‘; ‘ , substr_replace ( $input , $replace , 3 , $length )). «\n» ;
?>
Результат выполнения данного примера:
A: YYY; B: YYY; C: YYY A: AAA; B: BBB; C: CCC A: AAAXX; B: BBBX; C: CCC
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Смотрите также
- str_replace() — Заменяет все вхождения строки поиска на строку замены
- substr() — Возвращает подстроку
- Доступ к символу в строке и его изменение
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()
$bodytag = str_ireplace ( «%body%» , «black» , «» );
echo $bodytag ; //
?>?php
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Предостережение
Замечание о порядке замены
Так как str_ireplace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Пример №2 в документации str_replace() поясняет как это работает на практике.
Смотрите также
- str_replace() — Заменяет все вхождения строки поиска на строку замены
- preg_replace() — Выполняет поиск и замену по регулярному выражению
- strtr() — Преобразовывает заданные символы или заменяет подстроки
User Contributed Notes 11 notes
15 years ago
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 ;
>
?>
18 years ago
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 );
Как заменить N-ый символ в строке, используя php

Если вас интересует, как заменить 1 символ в строке php или, напри заменить 4 символ в строке php, мы готовы предоставить подробную инструкцию.
Как заменить любой символ, используя php
Для этого мы не можем использовать функции Explode. Для этого нам понадобится str_split.
- Разобьем наш текст на символы, используя функцию str_split.
$ARR= str_split (“наша строка”);
$ARR[номер символа]= “символ, на который хотим поменять” - Чтобы снова получить текст в виде строки, используем функцию Implode.
$STR=Implode(“”, $ARR); - В результате мы заменили ненужный нам символ на нужный.
Пример с заменой первого символа в строке “кочка”
Заменяем первый символ
Теперь преобразуем наш массив в строку
$STR=Implode(“”, $ARR);
В итоге в переменной $STR содержится наша изменённая строка “почка”.
А если вы не хотите разбираться с этим сами – закажите создание сайта под ключ у нас!
Еще ответы по теме:
- Входит ли наполнение сайта в стоимость разработки?
- Осуществляет ли Студия ЯЛ техническую поддержку сайтов, сделанных другими подрядчиками?
- Есть ли у Студии ЯЛ бесплатная поддержка для сайтов, которые она разрабатывает?