Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2012, 15:08   #1
--Egor--
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 13
По умолчанию Замена текста без изменения регистра

Здравствуйте. Подскажите пожалуйста, как реализовать следующую задачу: необходимо найти строку в тексте (без учета регистра) и заменить ее на ту же самую строку, с дополнительным текстом в начале и в конце.
Например, найти "PaGe" и заменить на "<b>PaGe</b>". Проблема в том, что неизвестно в каком регистре находится слово "PaGe"
Заранее спасибо
--Egor-- вне форума Ответить с цитированием
Старый 31.07.2012, 16:07   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

str_replace
preg_replace
Andkorol вне форума Ответить с цитированием
Старый 31.07.2012, 16:58   #3
--Egor--
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 13
По умолчанию

я думал в этом направлении, но у меня не получается оставить прежнюю кодировку
Код:
$word = '/'."$wo".'/i';
$rec = preg_replace("$word", "<b>$wo</b>", $rec);
--Egor-- вне форума Ответить с цитированием
Старый 31.07.2012, 18:41   #4
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Код:
$word = 'PaGe';
$text = 'Qwerty page ytrewq';

echo str_ireplace($word, '<b>' . $word . '</b>', $text);

Последний раз редактировалось LZero; 31.07.2012 в 18:44.
LZero вне форума Ответить с цитированием
Старый 31.07.2012, 21:42   #5
--Egor--
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 13
По умолчанию

Цитата:
Сообщение от LZero Посмотреть сообщение
Код:
$word = 'PaGe';
$text = 'Qwerty page ytrewq';

echo str_ireplace($word, '<b>' . $word . '</b>', $text);
Это все конечно хорошо, но $text будет равен 'Qwerty <b>PaGe</b> ytrewq', а не 'Qwerty <b>page</b> ytrewq'.
--Egor-- вне форума Ответить с цитированием
Старый 31.07.2012, 23:08   #6
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Так в первом сообщении нет ни слова про нижний регистр.
Тогда так:
Код:
echo str_ireplace($word, '<b>' . mb_strtolower($word) . '</b>', $text);
LZero вне форума Ответить с цитированием
Старый 31.07.2012, 23:51   #7
--Egor--
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 13
По умолчанию

Нет. судя по всему, я очень плохо объяснил.
есть $word. В каком регистре там слово - неизвестно.
есть $text, в котором есть слово из $word. В каком регистре оно тоже неизвестно. Т.е. эти слова могут быть в разных регистрах и неизвестно в каких. Мне нужно найти это слово в $text и добавить к нему тэги <b> и </b>, не изменив его регистр.
--Egor-- вне форума Ответить с цитированием
Старый 01.08.2012, 00:18   #8
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Код:
$word = 'PaGe';
$text = 'Qwerty page ytrewq';
echo preg_replace('/(' . preg_quote($word) . ')/i', '<b>$1</b>', $text);
LZero вне форума Ответить с цитированием
Старый 01.08.2012, 08:46   #9
--Egor--
Пользователь
 
Регистрация: 31.03.2009
Сообщений: 13
По умолчанию

а как это слово попадет в $1?
--Egor-- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан текст.Если первый символ текста не является малой латинской буквой, то оставить его без изменения vesdesvet Помощь студентам 0 25.11.2011 13:21
Найти без учёта регистра Shouldercannon Общие вопросы Delphi 4 26.04.2011 23:30
замена html текста без перезагрузки страницы designer999 HTML и CSS 2 15.02.2011 21:03
проверка без регистра Артэс Общие вопросы C/C++ 10 24.11.2009 19:53
Проверка текста без учета регистра John_chek Общие вопросы Delphi 8 08.06.2007 08:50