如何在PHP和PCRE中检测Unicode版本?

时间:2014-07-06 04:02:21

标签: php unicode pcre

Unicode 7.0.0于2014年6月发布.PCRE版本需要一段时间才能包含此版本,而另一个版本则包含更新的PCRE库。截至2014年7月,PCRE / PHP中的当前Unicode版本为6.3.0。有没有办法从PHP脚本中检测正在使用哪个Unicode版本? phpinfo()对此事保持沉默。

除了PCRE之外,Unicode版本是否会对任何内容产生影响?我无法看到它会如何影响其他库,例如mb_string,因为(据我所知)他们不关心代码点是否被分配,或者它具有什么属性(块,脚本,信,标记等。)。

2 个答案:

答案 0 :(得分:2)

我一直与PCRE的维护者联系,他告诉我它没有返回编译的Unicode版本的功能。因此,PHP也无法分辨。他将此功能添加到PCRE的未来版本中,但无法承诺何时。

答案 1 :(得分:2)

如果忽略自定义构建选项(PCRE_VERSION)和补丁,

--with-pcre-regex=DIR可以提供帮助。

> php -r 'echo PCRE_VERSION, PHP_EOL;'
> 8.34 2013-12-15

下表显示了PHP与PCRE和Unicode版本之间的对应关系。

PHP                     | PCRE | Unicode
-----------------------------------------
5.5.10                  |8.34  | 6.3.0
5.5.0 / 5.4.14 / 5.3.24 |8.32  | 6.2.0
5.4.9 / 5.3.19  8.31    |8.31  | 6.1.0
5.3.0                   |7.9   | 5.1.0

Unicode | PCRE
-------------------
7.0.0   | 8.36
6.3.0   | 8.34, 8.35
6.2.0   | 8.32
6.1.0   | 8.31
6.0.0   | 8.13, 8.20, 8.21, 8.30
5.2.0   | 8.02, 8.10, 8.11, 8.12
5.1.0   | 7.9, 8.0
5.0.0   | 7.0

<强>来源