奇怪的问题......
我有这个文档,当我复制文本并将其放在我的脚本中(作为字符串变量)时,正则表达式匹配成功。但是,当我使用file_get_contents到达文档(来自互联网)时,它不会。
这与编码有关吗?该文件是ISO-8859-1,但通过utf8_encode转换为utf8
请注意,字符串变量是从此utf8编码输出创建的。
这也是一个简单的正则表达式:
if (preg_match_all('/<h3 align=center><A NAME="([^"]*)"><\/A>(.*)<\/h3>(.*)::break::/isUu', $contents, $matches, PREG_SET_ORDER)) {
任何想法可能出错?
答案 0 :(得分:0)
这不是因为编码,而是由于达到了backtrack_limit。
使用以下内容覆盖设置:
ini_set('pcre.backtrack_limit', '1000000');
(从100,000起)解决了这个问题。 PHP 5.3。?也有这个值所以它不仅仅是一些非常大的数字。