![]() |
|
Модераторы: ginnie |
![]()
|
|
| evya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 7.3.2009 Репутация: нет Всего: нет |
Почему то не могу поменять:
Имею строку Лена красива женщина пОШла домой $poisk="пошла" $poisk2="потопола" $test=~s/$poisk/$poisk2/gi; почему то не меняет изза регистра пОШла, хотя индефикатор i имеется |
|||
|
||||
| vadiml |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: нет Всего: 7 |
Если не указать какая кодировка, то от модификатора /i есть прок только для латинских букв.
Поэтому если у Вас не utf8, то лучше не связываться с разными кодировками, а перед проверкой привести у одному регистру $test = 'Лена красива женщина пОШла домой'; $test =~ tr/АБВГДЕЁ/абвгдеё/ и т.д. весь алфавит |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
добавь
use locale; |
|||
|
||||
| evya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 7.3.2009 Репутация: нет Всего: нет |
use locale;
что нам даст??? |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Даст использование текущей локали. Не работает ? |
|||
|
||||
| evya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 7.3.2009 Репутация: нет Всего: нет |
нет не помогает решить задачу
причем mysql ищет нормально внезависимости от регистра латинские символы хорошо проглатывает, а русские вообще не помогает $test=~s/$poisk/$poisk2/gi; |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
какая OS, какая локаль, в какой кодировке файл и текст в нем ?
Это сообщение отредактировал(а) admsasha - 24.9.2010, 15:28 |
|||
|
||||
| evya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 7.3.2009 Репутация: нет Всего: нет |
сервер UNIX
С сайта приходит через jquery в UTF я его перекодирую в from_to ($poisk, 'UTF-8', 'CP1251'); из mysql данные то же идут в ср1251 потом мне нужно подсветить искомое слово и вывести все данные в этом и загвозка изза регистра слова поиск подстановка не работает |
|||
|
||||
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
прям unix ??
Серверная локаль какая ? Добавлено @ 15:45 впрочем, скорее всего будет тогда так
Это сообщение отредактировал(а) admsasha - 24.9.2010, 15:47 |
|||
|
||||
| evya |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 7.3.2009 Репутация: нет Всего: нет |
прям unix
Серверная локаль - не пойму
то же не помогает ты думаешь в разных кодировках сравнивается??? так вроде все в одной кодировке. -i вообще для кирилицы работает??? $test=~s/$poisk/$poisk2/gi; |
|||
|
||||
| admsasha |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
Странно работать в unix с cp1251 Естественно работает, только нужно правильно выстроить понимание кодировки для программы. Не сравнения в разных кодировках, а скрипт живет в другой кодировке, поэтому не может понять, какое соответствие регистров у данной. Как это я понимаю. текст - может быть. P.S. Специально проверил на своем компьютере, установка "use locale" помогла решить проблему. набери простой пример, будет работать ?
у меня вывод
|
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |