我在包含以下文件的目录(user-images/1/p/
)上调用php unlink()
函数:
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.jpg
、1-s.jpg
、1.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);
?>
我认为您正在寻找GLOB函数,它允许使用通配符进行删除。
示例
foreach (glob("*.jpg") as $filename) {
echo "$filename size " . filesize($filename) . "'n";
unlink($filename);
}
当运行只包含unlink
代码的php文件时,它运行得很好。我追踪了我的include的其余部分(花了很长时间:(),并发现了以前编码中的一些问题。仍然不确定为什么会影响静态unlink()
调用。也就是说,这是代码中其他地方的一个问题,已经得到解决。我感谢大家花时间和精力帮助我解决这个问题。。。
另一种方法和更明确的解决方案可能是使用路径
$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
}
}
请添加要删除的图像的取消链接函数。
unlink($image);