Php 使用Laravel删除文件夹中除“placeholder.png”以外的所有文件
所以我想把这一切都弄清楚。我在下面看到了这篇关于如何删除目录中的所有文件的文章,但是我想从删除中排除我的占位符图像。我还没有找到我想要的答案,所以这将是一个简短的问题 看看这里的SO问题:接受要删除的文件数组。因此,一种可能的解决方案是使用通配符选择器列出目录,然后从数组中筛选出排除列表Php 使用Laravel删除文件夹中除“placeholder.png”以外的所有文件,php,laravel,laravel-5,Php,Laravel,Laravel 5,所以我想把这一切都弄清楚。我在下面看到了这篇关于如何删除目录中的所有文件的文章,但是我想从删除中排除我的占位符图像。我还没有找到我想要的答案,所以这将是一个简短的问题 看看这里的SO问题:接受要删除的文件数组。因此,一种可能的解决方案是使用通配符选择器列出目录,然后从数组中筛选出排除列表 $filesForDelete = array_filter(glob("path/to/files/*"), function($file) { return false === strpos($fi
$filesForDelete = array_filter(glob("path/to/files/*"), function($file) {
return false === strpos($file, 'placeholder.png');
});
Storage::delete($filesForDelete);
当然,您的过滤器表达式可能会变得更好、更广泛,或者只是以许多其他方式执行相同的操作
例如,您可以创建以下帮助器函数:
function deleteAllButFile($exclude)
{
$filesForDelete = array_filter(glob("path/to/files/*"), function($file) use ($exclude) {
return false === strpos($file, $exclude);
});
Storage::delete($filesForDelete);
}
// Call it like
deleteAllButFile('placeholder.png');
或者你喜欢的其他方式。根据你的想象。我明天下班后会试试这个。如果我能成功地实现它,你一定会得到我的答案和支持!谢谢你抽出时间!另外,也许您也可以帮助回答这个问题:您可以应用检查目录中是否存在placeholder.png,然后除了全部删除之外,您只需使占位符图像的名称唯一即可。