preg_match匹配居然有字符长度限制

一个程序一直很正常,但近几天发现了问题,一些内容始终无法匹配,而相同的结构下其它的却没有问题。

开始怀疑是正则的问题,检查了N次也查不出来结果。

最后试着将字符删除一部分以查中间是不是有非法字符搞乱了正则。

但当删除到一定长度时却正常了。一查得知原来preg_match匹配居然有长度限制的。

最后将php.ini中的pcre.backtrack_limit值修改为-1得到了解决。

不熟悉手册害死人,折腾了好几天才知道原因,折腾啊。

2011年10月27日