时间:2021-07-01 10:21:17 帮助过:11人阅读
PHP代码(文件的编码是UTF-8的)
$str = '自此直至2010年n';
preg_match_all('/(\w+)/u', $str, $matches);
print_r($matches[0]);
PHP 5.5.14(MAC默认)
PCRE版本:PCRE Library Version 8.02 2010-03-19
输出:
Array
(
[0] => 2010
[1] => n
)
PHP 5.4.36(brew安装)
PCRE版本:PCRE Library Version 8.32 2012-11-30
输出:
Array
(
[0] => 自此直至2010年n
)
请问这2个版本的差异如何避免呢?
平台:
系统版本: OS X Yosemite 10.10.1
内核版本: Darwin 14.0.0
PHP代码(文件的编码是UTF-8的)
$str = '自此直至2010年n';
preg_match_all('/(\w+)/u', $str, $matches);
print_r($matches[0]);
PHP 5.5.14(MAC默认)
PCRE版本:PCRE Library Version 8.02 2010-03-19
输出:
Array
(
[0] => 2010
[1] => n
)
PHP 5.4.36(brew安装)
PCRE版本:PCRE Library Version 8.32 2012-11-30
输出:
Array
(
[0] => 自此直至2010年n
)
请问这2个版本的差异如何避免呢?
去掉 u
修饰符就好了,DEMO: http://3v4l.org/c0469
u (PCRE_UTF8)
此修正符打开一个与 perl 不兼容的附加功能。 模式字符串被认为是utf-8的. 这个修饰符 从 unix 版php 4.1.0 或更高,win32版 php 4.2.3 开始可用。 php 4.3.5 开始检查模式的 utf-8 合法性。
- 模式修饰符