使用unlink()和rmdir()的PHP函数不起作用

时间:2018-07-30 13:45:36

标签: php

我正在尝试删除创建文章时正在创建的目录。

我想做的是在从数据库中删除文章后,同时删除文件夹和文件,但是它似乎无法正常工作。

我正在使用此功能

function deleteFiles(string $path) {
    $files = glob($path . '/*');
    foreach ($files as $file) {
        is_dir($file) ? $this -> deleteFiles($file) : unlink($file);
    }
    rmdir($path);
}

我这样称呼它进行测试。

 deleteFiles('/home/emp/sub.domainx.com/en/test');

与此相关的控制台中没有错误显示。

有人对此有任何想法吗,谢谢。

1 个答案:

答案 0 :(得分:1)

确保已在开发模式下启用error_reporting(E_ALL)。确保您有权编辑文件夹/文件。通常,您必须将文件/文件夹更改为777。参考注释,类型声明在PHP5上可用。但是声明:

  

字符串,   浮动,   布尔   诠释   可迭代(> = 7.1),   对象(> = 7.2)

仅根据{{3}}从PHP7 +起可用,并且会给您带来致命错误,例如:

  

致命错误:未被捕获的TypeError:传递给test()的参数1必须是布尔值的实例,给定布尔值,在第1行的-中调用并在-:1中定义

如果使用的是PHP5,删除string应该可以解决问题。

function deleteFiles($path) {
    $files = glob($path . '/*');
    foreach ($files as $file) {
        is_dir($file) ? $this->deleteFiles($file) : unlink($file);
    }
    rmdir($path);
}