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*)\}/这样,当然我希望能够得到括号中的数字.
你会很高兴我发现了这个问题.从PHP 5.2开始,他们对可以使用PCRE功能的文本大小进行了限制,默认为100k.那不是那么糟糕.糟糕的是,如果大于此,它就会无声地失败.
解决方案?上限.初始化参数是pcre.backtrack_limit.