Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Тексты > не работает preg_replace |
Автор: sanich_ 20.5.2008, 23:15 | ||
Явно указываю параметр "i" в шаблоне, но почему то замена происходит тольок при совпадении регистра. В чем может быть проблема? P.S. функция неправильно работает на PHP хостинга, а на PHP локального web сервера работает корректно, может какие общераспространенные настройки, о которых я не знаю, нужно сделать? |
Автор: Feldmarschall 20.5.2008, 23:51 |
в поиск по форуму по слову setlocale |
Автор: sanich_ 21.5.2008, 02:14 | ||||
заработало
Это нужно каждый раз вызывать функцию setlocale(LC_ALL, 'ru_RU.CP1251') перед использованием preg_replace? Или достаточно один раз в модуле вызвать setlocale(LC_ALL, 'ru_RU.CP1251') ? Нет ли способа это наладить в натройках php? |
Автор: Feldmarschall 21.5.2008, 09:06 |
Это явно от ночного кодинга вопросы. Думаю, на свежую голову они перестанут казаться столь важными, чтобы их писать на форум. |
Автор: chirs99 8.6.2008, 20:07 |
У меня примерно тот же вопрос был. Но с кодировкой UTF-8. Т.е. мне нужен регистронезависимый поиск подстроки в строке, причем обе они в кодировке UTF-8. Преобразовывать в другие кодировки нельзя, т.к. текст, который ищем и в котором ищем - может быть на разных языках (русский, французский, немецкий, иврит и т.д.), а заранее мы не можем знать, какой там будет текст. Можете подсказать как можно поступить ? или в каком направлении по крайней мере идти ? |
Автор: Feldmarschall 8.6.2008, 20:31 |
в направлении мануала и mbstring |
Автор: chirs99 9.6.2008, 04:05 |
Т.е. как ни копай документацию, а функцию для регистронезависимого поиска в кодировке UTF-8 не найти и ее придется писать самому с использованием mbstring ? |
Автор: skyboy 9.6.2008, 10:11 |
т.е. имеющиеся тебя не устроили? ну, что ж. тогда пиши свою. я-то думал, что там на любой вкус функции по работе с utf-строками... |
Автор: Feldmarschall 9.6.2008, 10:52 |
Что делать, если человек вместо выполнения рекомендации начинает над ней размышлять. |
Автор: chirs99 9.6.2008, 17:24 | ||
Раз такие умные, напишите мне, какая функция PHP может осуществить регистронезависимый поиск подстроки в строке в кодировке UTF-8. Только не надо мне предлагать stripos или регулярное выражение с ключом /i. И даже mb_stripos - тоже не может сделать такой поиск. Для кодировки UTF-8 все это не катит. Попробуйте хотя бы этот пример:
Лично у меня mb_stripos не может найти слово "ПРИвет" в "всем привет !". Если кодировка текста в переменных $mystring и $findme будет windows-1251 - то конечно, нет проблем, все находит. А если текст в UTF-8, то не находит. |
Автор: skyboy 9.6.2008, 20:45 | ||
сразу расхотелось отвечать. пересилю себя. 1. есть кодировка ср1251. про windows-1251 слышу впервые. впрочем, все может быть. 2. вот такой код у меня работает:
обрати внимание на 4 параметр mb_stripos. |
Автор: chirs99 10.6.2008, 03:38 |
skyboy, извините за некоторую резкость в моих предыдущих словах, просто меня тоже обидел подход типа "ну раз мол человек такой тупой, раз рекомендации не выполняет...", правда другими словами, но суть та же. А вообще, большое Спасибо за помощь. Все дело действительно в 4-м параметре. Как же это я сам не мог это заметить ?! Елки-палки ! Еще раз большое спасибо за помощь. |