相关疑难解决方法(0)

PHP:UTF8中的西里尔字符串的不区分大小写的preg_replace

我有一个PHP 5.3脚本显示我的网站的用户,并希望用它的旧名称替换某个俄罗斯城市(存储在PostgreSQL 8.4.7数据库中的UTF8 + CentOS 5.5/64位Linux)(这是一个内幕笑话) :

preg_replace('/?????????/iu', '??????????', $city);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这仅适用于完全匹配:Волгоград.

这不适用于其他情况,如ВОЛГОГРАДволгоград.

如果我将源代码修改为

preg_replace('/[??]????????/iu', '??????????', $city);
Run Code Online (Sandbox Code Playgroud)

然后它将赶上上面的第二个案例.

有谁知道它发生了什么以及如何解决它(假设我不想为每个字母写[Xx])?

谢谢!亚历克斯

更新:

# 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
Run Code Online (Sandbox Code Playgroud)

php utf-8 preg-replace internationalization

4
推荐指数
1
解决办法
9985
查看次数

标签 统计

internationalization ×1

php ×1

preg-replace ×1

utf-8 ×1