如何使用PHP脚本从文件夹中删除图像

时间:2012-02-18 11:03:43

标签: php

我们需要删除在linux文件系统中创建的图像。在路径/home/user/img/(所有图像)

我们已尝试使用unlink(),但删除它需要花费大量时间。 有人可以帮我们如何使用linux命令删除图像必须用PHP脚本传递。我认为rm命令可以很快完成,但我很困惑如何使用

我们的剧本:

$locationIMG_p="/home/user/img/";
$location_p="/home/user/img/";

$opend=opendir($locationIMG_p);

while(false!==($rf=readdir($opend)))
{           
    unlink($locationIMG_p.$rf);
}         

closedir($opend);

2 个答案:

答案 0 :(得分:4)

也许尝试使用shell命令?

$cmd = "rm -f {$locationIMG_p}*"; exec($cmd);

但是在使用它时你必须非常小心;)

//编辑 您应该在路径中添加一些验证并使用escapeshellarg

// EDIT2

您也可以尝试使用DirectoryIterator,如下所示:

$di = new DirectoryIterator(path);
foreach($di as $file)
{
   if( $file->isFile() )
   {
        unlink($file->getPathname());
   }
}

答案 1 :(得分:1)

foreach(glob('/www/images/*.*') as $file)
    if(is_file($file))
        @unlink($file);

glob()返回与通配符模式匹配的文件列表。

unlink()删除给定的文件名(如果成功与否则返回)。

PHP函数名之前的@强制PHP禁止函数错误。

通配符取决于您要删除的内容。 *.*适用于所有文件,而*.jpg适用于jpg文件。请注意,glob也会返回目录,因此如果您有一个名为images.jpg的目录,它也将返回它,从而导致unlink失败,因为它只删除文件。

is_file()确保您只尝试删除文件。

另请阅读this了解更多详情......