Функция str_replace
Функция str_replace ищет в строке заданный текст и меняет его на другой. Первым параметром функция принимает то, что меняем, а вторым — на что меняем. Это могут быть две строки или два массива. Во втором случае соответствующие элементы одного массива заменятся на соответствующие элементы второго массива (см. примеры).
Есть также функция str_ireplace , которая делает тоже самое, но без учета регистра.
Синтаксис
str_replace(что меняем, на что меняем, где меняем);
Пример
Давайте заменим все буквы ‘a’ на ‘!’ :
Результат выполнения кода:
Пример
Давайте заменим все буквы ‘a’ на 1 , буквы ‘b’ на 2 , буквы ‘c’ на 3 :
Результат выполнения кода:
Смотрите также
- функцию 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()
$bodytag = str_ireplace ( «%body%» , «black» , «» );
echo $bodytag ; //
?>?php
Примечания
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Предостережение
Замечание о порядке замены
Так как str_ireplace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Пример №2 в документации str_replace() поясняет как это работает на практике.
Смотрите также
- str_replace() — Заменяет все вхождения строки поиска на строку замены
- preg_replace() — Выполняет поиск и замену по регулярному выражению
- strtr() — Преобразует заданные символы или заменяет подстроки
User Contributed Notes 11 notes
14 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 );
Как заменить символы в строке php
Поисковый запрос — «php найти слово в скобках«, к сожалению, этого недостаточно, найти и. что сделать!?
php найти слово в скобках — подчеркнуть!? На странице рассмотрели нахождение повторяющегося слова
php найти слово в скобках — удалить!?
php найти слово в скобках — заменить!? Также была тема замены слова в скобках(скобки без разницы какие, нужно в скрипте это прописать)
php найти слово в скобках — получить текст внутри скобок. Для данного вопроса, необходимы уточнения. первое ли вхождение в строке, либо все вхождения в строке.
Заменить N-ый символ в строке php
Поисковый запрос «заменить 5 символ в строке php«, «заменить 2 символ в строке php» — в общем объединим, данные поисковые запросы в один: «Заменить N-ый символ в строке php»
Как это сделать!? Если речь идет о «кириллице в utf-8», то придется поднапрячься.
А если для латиницы, то вообще легко.
Раз уж пошла речь о замене 5, то и возьмем это число и фразу:
Обратимся к пятому элементу строки, как к ячейке массива и поставим туда, какой-то знак, пусть это будет вопросительный .
Вопрос на засыпку. почему нельзя таким образом заменить символ на несколько символов. что произойдет!?
Смотрим результат.
