3

我正在尝试使用 preg_match_all() 解析一些网页,其中一些非常大,有几 MB 大小。并且其中一个正则表达式匹配一些大到似乎无法匹配和获取它们的文本字符串。它只是返回一个空字符串。

当我手动选择它并将其保存为 .txt 文件时,其中一个字符串是 1.32MB 或 1,393,557 字节。

当字符串短得多只有几万字节时,该正则表达式成功匹配并获取它。

所以我的问题是,当我想到字符串 preg_match_all() 可以匹配的限制/最大长度时,它是什么以及如何将其设置得更大?

4

1 回答 1

10

在脚本或 php.ini 文件中将设置ini_set('pcre.backtrack_limit', '1048576');为您想要的任何内容以供全局使用。(示例为 1mb)

归功于:http ://www.karlrixon.co.uk/writing/php-regular-expression-fails-silently-on-long-strings/

于 2013-08-18T06:48:58.093 回答