使用PHP从Linux服务器上的文件夹中删除所有文件

使用PHP从Linux服务器上的文件夹中删除所有文件,php,linux,Php,Linux,我的问题和这个差不多 我试着用@Floern提供的答案 但这对我不起作用。我试图从Linux服务器上的文件夹中获取文件名。我已经将文件夹和文件权限更改为rwxrwx。我一直收到“无法获取文件名”的消息。有人知道怎么解决吗?非常感谢 $files=glob('/data/in/*') or die ("Unable to get the filename"); foreach ($files as $file) {

我的问题和这个差不多

我试着用@Floern提供的答案

但这对我不起作用。我试图从Linux服务器上的文件夹中获取文件名。我已经将文件夹和文件权限更改为rwxrwx。我一直收到“无法获取文件名”的消息。有人知道怎么解决吗?非常感谢

     $files=glob('/data/in/*') or die ("Unable to get the filename");
                foreach ($files as $file) {
                    if(is_file($file)){
                        echo $file;
                        unlink($file) or die ("Uable to delete file!");
                    }       
                }   
------更新----


我刚想出来。这是服务器的问题。即使分配了写入权限,我也无法将任何内容写入数据文件夹。我将把我的in文件夹移动到另一个文件夹


非常感谢大家的评论

正如@Marc B所说,你只需写下以下内容:

 $files=glob('data/in/*') or die ("Unable to get the filenames!");
            foreach ($files as $file) {
                if(is_file($file)){
                    echo $file;
                    unlink($file) or die ("Unable to delete file!");
                }       
            }
你写:
glob('/data/in/*')
,我写
glob('data/in/*')

您使用绝对路径,我使用相对路径。

使用本教程:

并检查您的文件夹权限是否允许写入

你试过这样做吗:

$dir = 'your/directory/';
foreach(glob($dir.'*.*') as $v){
    unlink($v);
}

如果文件不在公共目录下

将文件模式更改为777

  $files=glob('data/in/*') or die ("Unable to get the filename");
            foreach ($files as $file) {
                if(is_file($file)){
                    echo $file;
                       chmod($file,777);
                    unlink($file) or die ("Uable to delete file!");
                }       
            }   

使用php解决方案。不喜欢
glob
功能。您可以使用递归目录迭代器

    $filePath = '/someDir';
    $directoryIterator = new \RecursiveDirectoryIterator(realpath($filePath));
    foreach (new \RecursiveIteratorIterator($directoryIterator) as $object ) {
        if(!$object->isDir())
        {
            unlink($object->getPath());
        }
    }

所以问题真的是“为什么
glob
失败”?我们怎么知道呢?使用scandir()end排除目录中的文件,并测试
is_dir($item)
您的文件系统根目录中是否确实有
/data
目录?我怀疑。。。您的站点的文档根目录中可能有
/data
,但这将是
/some/other/path/site/docroot/data
,而不仅仅是
/data
@Jon我认为您不理解我的问题。glob为其他人工作。因此,问题不是“为什么glob会失败”。如果我知道问题是什么,我不会在这里发帖。@user2167772:如果你得到“无法获取文件名”,那意味着
glob
失败。这意味着您要找出
glob
失败的原因。
glob
只有一个参数。你确定它是正确的吗?Quote
我已经将文件夹和文件权限更改为rwxrwxrwx
他已经检查了权限n,他只是没有通过glob()函数,因为他使用了绝对路径:)你有没有输入777权限?他输入了
rwxrwxrwx
这是sameHi Bob0t和@Marc B。谢谢你的评论。我尝试了相对路径。它不起作用。我的文件系统的根目录中确实有一个/data目录。那么这不是解决方案:vIt是服务器的问题。