PHP的preg_match匹配字符串长度问题解决方法
2014-05-03 00:00
1696 查看
项目中,用preg_match正则提取目标内容,死活有问题,代码测得死去活来。
后来怀疑PHP 的preg_match有字符串长度限制,果然,发现“pcre.backtrack_limit ”的值默认只设了100000。
解决办法:ini_set('pcre.backtrack_limit', 999999999);
注:这个参数在php 5.2.0版本之后可用。
另外说说关于:pcre.recursion_limit
pcre.recursion_limit是PCRE的递归限制,这个项如果设很大的值,会消耗所有进程的可用堆栈,最后导致PHP崩溃。
也可以通过修改配置来限制:ini_set('pcre.recursion_limit', 99999);
实际项目应用中,最好也对内存进行限定设置:ini_set('memory_limit', '64M'); , 这样就比较稳妥妥嘎。
后来怀疑PHP 的preg_match有字符串长度限制,果然,发现“pcre.backtrack_limit ”的值默认只设了100000。
解决办法:ini_set('pcre.backtrack_limit', 999999999);
注:这个参数在php 5.2.0版本之后可用。
另外说说关于:pcre.recursion_limit
pcre.recursion_limit是PCRE的递归限制,这个项如果设很大的值,会消耗所有进程的可用堆栈,最后导致PHP崩溃。
也可以通过修改配置来限制:ini_set('pcre.recursion_limit', 99999);
实际项目应用中,最好也对内存进行限定设置:ini_set('memory_limit', '64M'); , 这样就比较稳妥妥嘎。
相关文章推荐
- PHP的preg_match匹配字符串长度问题解决方法
- win2003下PHP使用preg_match_all导致apache崩溃问题的解决方法
- preg_*匹配的字符串长度限制问题以及nginx,php上传文件过大问题
- PHP中preg_match函数正则匹配的字符串长度问题
- PHP中preg_match函数正则匹配的字符串长度问题
- PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
- php分割字符串方法速度比較(substr/sscanf/preg_match)
- JSON字符串传到后台PHP处理问题的解决方法
- php_match/preg_match_all 默认有字符串长度限制
- java字符串星号、问号匹配问题解决方法
- 解决PHP字符串长度不一致的问题
- PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
- 解决preg_match匹配过多字符长度的限制的思路分析
- java中按字节获得字符串长度的两种方法 Java问题通用解决代码
- 解决preg_match匹配过多字符长度的限制的思路分析
- JSON字符串传到后台PHP处理问题的解决方法
- java字符串星号、问号匹配问题解决方法
- java字符串星号、问号匹配问题解决方法
- php使用preg_match()函数验证ip地址的方法
- JSP页面UTF-8格式中文字符串乱码问题解决方法