2012-01-31 421 views
-1

我呼吁目录中的PHP unlink()功能(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.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); 
?> 
+9

尝试一个简单的PHPfile,只有在它的取消链接线,并直接调用它,看看,如果仍然发生。如果没有,问题可能在脚本中的其他地方!不知何故,我怀疑它与unlink-command本身有关。 – tim 2012-01-31 07:26:25

+2

这太疯狂了,它不应该发生,我从来没有听说过它发生过。 a)你能分享完整的脚本吗?因为它听起来好像还有其他问题吗? b)你有没有试过运行一个脚本,除了单一的unlink()调用之外什么都没有? – GordonM 2012-01-31 07:28:33

+0

只是为了试验,尝试使用绝对路径而不是相对路径。如果这不起作用,请重命名文件并删除并查看会发生什么。 – 2012-01-31 07:31:54

回答

1

运行时,只有在它的unlink代码的PHP文件,它工作得很好,我追踪了我的其他内容(永远占用:(),并在编码之前发现了一些问题,但仍然不确定为什么会影响静态的unlink()调用,也就是说,这是代码中其他地方的一个问题。我很欣赏每个人提出的时间和精力来帮助我解决这个问题......

0

请添加对哪个图像要删除取消链接功能。

unlink($image); 
+0

为什么“请取消取消链接”?那么他将如何删除该文件?您的代码只是删除OP想要使用的功能... – 2012-01-31 08:15:07

+0

如果您想要删除一个文件的含义,请使用一行取消链接功能。 – Sivanath 2012-01-31 08:21:26

+0

在你的答案中没有这样的东西......你应该用这个解释编辑它,到目前为止,它似乎只是你想让他完全取消取消链接 – 2012-01-31 08:27:31

6

我想你正在寻找GLOB功能,它允许使用通配符进行删除。

例如

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