PHP unlink命令删除多个文件

时间:2012-01-31 07:21:39

标签: php directory delete-file unlink

我在包含以下文件的目录(unlink())上调用php user-images/1/p/函数:

1.jpg
1-s.jpg
1big.jpg
2.jpg
2-s.jpg
2big.jpg

实际的通话本身如下:

unlink('user-images/1/p/1big.jpg');

它不会删除1big.jpg,而是删除其中包含1的所有文件(1big.jpg1-s.jpg1.jpg)。我已经对此进行了相当多的研究,似乎找不到任何发布类似问题的人。

编辑: 下面是完整的脚本,真的没那么多,看不出有什么可能会受到影响。我以前从未见过这个:(

<?PHP
unlink('user-images/1/p/1.jpg');
unlink('user-images/1/p/1-s.jpg');
$uid = '1';
$fileName = '467';
$image = '/friskyfriends/user-images/1/p/1-big.jpg';
$width = 320;
$height = 320;
buildPics();
//buildPics($uid,$fileName,$image,$width,$height);
?>

4 个答案:

答案 0 :(得分:7)

我认为您正在寻找允许使用通配符删除的GLOB功能。

例如

foreach (glob("*.jpg") as $filename) {
   echo "$filename size " . filesize($filename) . "\n";
   unlink($filename);
}

答案 1 :(得分:1)

当运行只包含unlink代码的php文件时,它运行正常。我追踪了我的其余部分(永远花了:()并且在编码之前发现了一些问题。仍然不确定为什么会影响静态unlink()调用。也就是说,这是代码中其他地方的问题已经解决了。我感谢大家提出的帮助我解决这个问题的时间和精力......

答案 2 :(得分:1)

另一种方法和更明确的解决方案可能是通过一条路径

$search_text = "logfiles";
foreach(glob("/path/to/your/directory/$search_text*") as $filename)
{
    if(file_exists($filename)
    {
        echo "$filename size " . filesize($filename) . "\n";
        unlink($filename);
    }
    else
    {
         //no need to write because file already found with glob function
    }
}

答案 3 :(得分:0)

请为要删除的图片添加取消链接功能。

unlink($image);