в то время как вы можете переписать свое регулярное выражение, чтобы использовать некоторые трюки 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

Ответы на вопрос(9)

Ваш ответ на вопрос