|
|
|
| У меня беда. Перестали работать регулярки. В частности диапазон по нелатинским буквам.
preg_replace('|[б]|', 'й', 'абвг');
|
возвращает "й�ййй�й�" (� - вопрос в чёрном ромбе)
Всё в utf-8. Проверял на сервере - аналогично. Раньше такой проблемы не было.
Что за напасть? | |
|
|
|
|
|
|
|
для: Qiao
(12.06.2009 в 15:35)
| | А что было раньше?
Для utf8 существует специальный модификатор шаблона. | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2009 в 16:12)
| | Раньше оно работало и возвращало "айвг".
Проверьте у себя.
Элементарное регулярное выражение. | |
|
|
|
|
|
|
|
для: Qiao
(12.06.2009 в 16:14)
| | >Раньше оно работало и возвращало "айвг".
в utf8 ? Сомневаюсь.
>Проверьте у себя.
Да я и так верю :))
>Элементарное регулярное выражение.
single-byte. А Вам нужно multibyte. | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2009 в 16:26)
| | Зря сомневаетеся. Я не так давно мегабайты китайского текста выделял через диапазоны, всё в чистом utf.
Всё же кроме диапазонов работает.
preg_replace('|б|', 'й', 'абвг'); - всё нормально
Если бы она однобайтной была, то русский бы вообще с регулярными не работал.
Вы у себя проверьте - работать должно.
Я в шоке, как дальше жить без регулярок? | |
|
|
|
|
|
|
|
для: Qiao
(12.06.2009 в 16:36)
| | Еще раз говорю. Поставьте в хвост шаблона модификатор u и не парьте мозги
preg_replace('|[б]|u', 'й', 'абвг'); | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2009 в 16:55)
| | РАБОТАЕТ!
Я уже чуть ли не вешаться собрался.
Почему? Всю жизнь без него всё делал, вобще про него не знал, а с диапазонами работал очень плотно. Это что - с системой связано?
Решил, что php поломался.
ой, боже, вот это стрессы | |
|
|
|
|
|
|
|
для: Qiao
(12.06.2009 в 17:08)
| | там по ссылке всё написано. | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2009 в 17:22)
| | Прочёл всё, вроде нет | |
|
|
|
|
|
|
|
для: Qiao
(12.06.2009 в 17:55)
| | u (PCRE_UTF8)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблоны обрабатываются как UTF8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ. Валидность UTF8 в шаблоне проверяется начиная с PHP 4.3.5. | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2009 в 20:46)
| | Это не обьясняет почему раньше всё прекрасно работало без u (систему менял, да).
Просто когда постояно с чем-то работаешь и вдруг оно перестаёт работать - очень неприятные ощущения.
Да и вообще, сколько примеров с [а-я] не встречал, везде без u | |
|
|
|
|
автор: 423423 (13.06.2009 в 03:09) |
|
|
для: Qiao
(13.06.2009 в 02:24)
| | Это не обьясняет почему раньше всё прекрасно работало без u (систему менял, да).
Могло казаться, что работает правильно. Или что-то работало, но при удачном стечении обстоятельств.
Да и вообще, сколько примеров с [а-я] не встречал, везде без u
Эти примеры были не для utf8 | |
|
|
|