Как заменить символы в строке php
Перейти к содержимому

Как заменить символы в строке php

  • автор:

Функция 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 ; //
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Предостережение

Замечание о порядке замены

Так как 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.

  1. Разобьем наш текст на символы, используя функцию str_split.
    $ARR= str_split (“наша строка”);
    $ARR[номер символа]= “символ, на который хотим поменять”
  2. Чтобы снова получить текст в виде строки, используем функцию Implode.
    $STR=Implode(“”, $ARR);
  3. В результате мы заменили ненужный нам символ на нужный.

Пример с заменой первого символа в строке “кочка”

Заменяем первый символ

Теперь преобразуем наш массив в строку
$STR=Implode(“”, $ARR);
В итоге в переменной $STR содержится наша изменённая строка “почка”.

А если вы не хотите разбираться с этим сами – закажите создание сайта под ключ у нас!

Еще ответы по теме:

  • Входит ли наполнение сайта в стоимость разработки?
  • Осуществляет ли Студия ЯЛ техническую поддержку сайтов, сделанных другими подрядчиками?
  • Есть ли у Студии ЯЛ бесплатная поддержка для сайтов, которые она разрабатывает?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *