preg_match和长字符串

use*_*105 3 php regex preg-match

这是我试图用来在文本文件中查找特定文本的preg_match.

if (preg_match($regexp,$textFile,$result) > 0) {
    echo "Found ".$result[0];
} else {
    echo "Not found";
}
Run Code Online (Sandbox Code Playgroud)

但是,结果总是如此Found.结果数组为空.现在我读到preg_match无法使用长字符串.

我的文本文件大约是300KB,所以我想是300000个字符.

我100%确定搜索到的字符串在文本文件中,并且preg_match函数返回值大于0的事实意味着它找到了它,但它没有以某种方式将它放入结果数组中.

所以我的问题是,我如何让它发挥作用?

regexp就是/[specific text]\{(\d*)\}/这样,当然我希望能够得到括号中的数字.

cle*_*tus 8

你会很高兴我发现了这个问题.从PHP 5.2开始,他们对可以使用PCRE功能的文本大小进行了限制,默认为100k.那不是那么糟糕.糟糕的是,如果大于此,它就会无声地失败.

解决方案?上限.初始化参数是pcre.backtrack_limit.