PHP unlink命令删除多个文件

问题描述 投票:0回答:4

我在包含以下文件的目录(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);
?>
php directory delete-file unlink
4个回答
7
投票

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

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

1
投票

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


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
    }
}

0
投票

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

unlink($image);
© www.soinside.com 2019 - 2024. All rights reserved.