в то время как вы можете переписать свое регулярное выражение, чтобы использовать некоторые трюки utf, конвертировать код в utf, это не вариант, когда вы работаете с огромной базой кода / базой данных и т. д.
я естьскрипт PHP 5.3 отображая пользователей моего веб-сайта и желая заменить определенный русский город (хранящийся в UTF8 в базе данных PostgreSQL 8.4.7 + CentOS 5.5 / 64 бит Linux) его более старым именем (это шутка инсайдера):
preg_replace('/Волгоград/iu', 'Сталинград', $city);
К сожалению, это работает только для точных совпадений:Волгоград.
Это не работает для других случаев, таких какВОЛГОГРАД или жеволгоград.
Если я изменю свой исходный код на
preg_replace('/[Вв]олгоград/iu', 'Сталинград', $city);
тогда он поймает 2-й случай выше.
Кто-нибудь знает, что происходит и как это исправить (при условии, что я не хочу писать[Хх] закаждый письмо)?
Спасибо! Alex
ОБНОВИТЬ:
# rpm -qa|grep php
php53-bcmath-5.3.3-1.el5
php53-gd-5.3.3-1.el5
php53-common-5.3.3-1.el5
php53-pdo-5.3.3-1.el5
php53-mbstring-5.3.3-1.el5
php53-xml-5.3.3-1.el5
php53-5.3.3-1.el5
php53-cli-5.3.3-1.el5
php53-pgsql-5.3.3-1.el5
# rpm -qa|grep pcre
pcre-6.6-2.el5_1.7