PHP 中“致命错误:达到最大函数嵌套级别 '100',中止!”的解决方案

2022-08-30 06:49:33

我创建了一个函数,该函数查找html文件中的所有URL,并对链接到发现的URL的每个html内容重复相同的过程。该函数是递归的,可以无休止地继续。但是,我通过设置一个全局变量来限制递归,该变量导致递归在100个递归后停止。

但是,php 返回此错误:

致命错误:已达到最大函数嵌套级别“100”,正在中止!在 D:\wamp\www\crawler1\simplehtmldom_1_5\simple_html_dom.php 行 1355 上

ERROR

我在这里找到了一个解决方案:增加嵌套函数调用限制,但这在我的情况下不起作用。

我引用了上述链接中的一个答案。请考虑一下。

“你有Zend,IonCube或xDebug安装吗?如果是这样,那可能是您从哪里得到此错误。

几年前我遇到了这个问题,最终是Zend把这个限制放在那里,而不是PHP。当然,删除它会让>你超过了100次迭代,但你最终会达到内存极限。

有没有办法提高PHP中的最大函数嵌套级别


答案 1

增加 xdebug.max_nesting_level 的值php.ini


答案 2

一个简单的解决方案解决了我的问题。我刚刚评论了这一行:

zend_extension = "d:/wamp/bin/php/php5.3.8/zend_ext/php_xdebug-2.1.2-5.3-vc9.dll

在我的文件中。此扩展限制了堆栈,因此我禁用了它。递归函数现在按预期工作。php.ini100


推荐