overtrue/pinyin

php7.3.13 字符串中包含Ⅲ字符就会崩溃

buffge opened this issue · 1 comments

这是 Pinyin.php 316行 实际执行的代码 .
preg_replace('~[^\p{Han}\p{Z}\p{M} a-zA-Z]~u', '', 'Ⅲ');
在php7.4.0 环境下无问题

ondrej源的问题. php7.3对应的是10.32版本的pcre. 但是他源中依赖的是libpcre2-dev 是1034版本的.在执行特殊正则时会出问题. 可以切换到php7.4. 或者自己编译. 自己编译pcre2默认是静态链接. ondrej源的php设置了动态链接