首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我收到“致命错误:达到'100‘的最大函数嵌套级别,正在中止!”使用glob()时出错。为什么?

我收到“致命错误:达到'100‘的最大函数嵌套级别,正在中止!”使用glob()时出错。为什么?
EN

Stack Overflow用户
提问于 2012-08-22 11:39:00
回答 2查看 173关注 0票数 1
代码语言:javascript
代码运行次数:0
运行
复制
function deletefiles($directory)
{
    $folder = glob($directory);  // <--error on this line.
    foreach($folder as $file)
    {
        if(is_dir($file)) 
        { 
            deletefiles($directory);
        } 
        else 
        {
            unlink($file);
        }
    }
    if(is_dir($directory))
    {
        rmdir($directory);
    }
}

这就是导致错误的代码。该函数用于删除指定文件夹的所有文件和子目录。每个文件夹最多只能包含5个子文件夹。当文件夹中只有文件时,此函数起作用。任何见解都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-22 11:47:51

有两个地方需要修复。

代码语言:javascript
代码运行次数:0
运行
复制
function deletefiles($directory)
{
  $folder = glob($directory . '/*'); // <-- here
  foreach($folder as $file)
  {
    if(is_dir($file)) 
    { 
      deletefiles($file); // <-- and here
    } 
    else 
    {
      unlink($file);
    }
  }
  if(is_dir($directory))
  {
    rmdir($directory);
  }
}
票数 2
EN

Stack Overflow用户

发布于 2012-08-22 11:46:09

看起来你使用$directory而不是$file发送函数请求,这意味着你正在钻研结构,你只是在同一文件夹中多次调用相同的函数。

我认为您想要将第一个if部分更改为:

代码语言:javascript
代码运行次数:0
运行
复制
if(is_dir($file)) 
{ 
    deletefiles($file);
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12066017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档