9

我有一个文件夹'items',其中有 3 个item1.txt, item2.txt and item3.txt. 我想delete item2.txt从文件夹归档的文件。我正在使用下面的代码,但它没有从文件夹中删除文件。任何机构都可以帮助我。

<?php
        $data="item2.txt";
        $dir = "items";
        $dirHandle = opendir($dir);
        while ($file = readdir($dirHandle)) {
            if($file==$data) {
                unlink($file);
            }
        }

        closedir($dirHandle);

?>    
4

6 回答 6

24

最初该文件夹应具有 777 权限

$data = "item2.txt";
$dir = "items";
while ($file = readdir($dirHandle)) {
    if ($file==$data) {
        unlink($dir.'/'.$file);
    }
}

或尝试

$path = $_SERVER['DOCUMENT_ROOT'].'items/item2.txt';
unlink($path);
于 2012-11-22T07:33:01.500 回答
5

这里不需要 while 循环来删除一个文件,你必须将该文件的路径传递给 unlink() 函数,如下所示。

$file_to_delete = 'items/item2.txt';
unlink($file_to_delete);

请阅读 unlink() 函数的详细信息

http://php.net/manual/en/function.unlink.php

于 2012-11-22T07:33:42.110 回答
3

您的代码中有一个错误,您没有给出正确的路径

<?php
        $data="item2.txt";    
        $dir = "items";    
        $dirHandle = opendir($dir);    
        while ($file = readdir($dirHandle)) {    
            if($file==$data) {
                unlink($dir."/".$file);//give correct path,
            }
        }    
        closedir($dirHandle);

?>    
于 2012-11-22T07:35:47.733 回答
2
如果($文件==$数据){
  取消链接($dir .'/'.$file);
}
于 2012-11-22T07:37:51.817 回答
2

这很简单:

$file='a.txt';

    if(unlink($file))
    {
        echo "file named $file has been deleted successfully";
    }
    else
    {
        echo "file is not deleted";
    }

//if file is in other folder then do as follows

unlink("foldername/".$file);
于 2016-03-15T11:51:03.713 回答
1

尝试将其重命名为服务器可以访问的垃圾箱或临时文件夹* *除非它是敏感数据。

rename($old, $new) or die("Unable to rename $old to $new.");
于 2012-11-22T07:32:58.953 回答