用preg_match_all匹配时,有时成功有时匹配失败,郁闷了很久,无意中在网上找到答案:

用正则表达式从字符串中提取内容失败,反复检查字符串和正则表达式,都没有问题。
又写了小脚本测试,还没有问题,回到代码中调试,又失败了。
字符串比较长,因此怀疑是不是preg_match也有字符串长度限制,果然!
preg_match、preg_match_all都会有这种情况。

解决方法:
1、ini_set(‘pcre.backtrack_limit’, 1000000); //默认的只有100000
2、修改 php.ini 的pcre.backtrack_limit参数,使之支持更大的字符串。加入配置:pcre.backtrack_limit=-1