preg_match正则匹配的字符串中会出现一些问题,下面我来给大家介绍一下怎么来解决长字符串时出现错误观点的解决办法。
例
preg_match_all正则匹配字符串所有连接地址
代码如下 | 复制代码 |
$ymd=date("y")."/".date("m-d"); |
但是用preg_match正则提取目标内容,死活有问题,
代码测得死去活来。
后来发现“pcre.backtrack_limit ”的值默认只设了100000。
解决办法:
代码如下 | 复制代码 |
|
注:这个参数在php 5.2.0版本之后可用。
另外说说关于:pcre.recursion_limit
pcre.recursion_limit是PCRE的递归限制,这个项如果设很大的值,会消耗所有进程的可用堆栈,最后导致PHP崩溃。
也可以通过修改配置来限制
代码如下 | 复制代码 |
ini_set(‘pcre.recursion_limit’, 99999); |
实际项目应用中,最好也对内存进行限定设置:
代码如下 | 复制代码 |
ini_set(‘memory_limit’, ’64M’); |