Php 如何使用array_intersect查找相同的文件?

Php 如何使用array_intersect查找相同的文件?,php,unlink,array-intersect,Php,Unlink,Array Intersect,我在删除两个不同文件夹中的两个文件(都具有相同的文件名)时遇到问题。我尝试使用unlink函数进行删除。如何使用PHP取消链接功能删除这两个不同文件夹中的这两个文件 有谁能指导我如何使用array\u intersect查找文件,将这些文件放入数组,并在该数组上运行foreach循环,以使用unlink进行删除 下面是我的代码:   下面是我的删除代码,它成功删除了uploads_meeting_document文件夹中的文件,因此我的问题是如何删除uploads_Filling_文

我在删除两个不同文件夹中的两个文件(都具有相同的文件名)时遇到问题。我尝试使用unlink函数进行删除。如何使用PHP取消链接功能删除这两个不同文件夹中的这两个文件

有谁能指导我如何使用
array\u intersect
查找文件,将这些文件放入数组,并在该数组上运行foreach循环,以使用unlink进行删除

下面是我的代码:


 
下面是我的删除代码,它成功删除了uploads_meeting_document文件夹中的文件,因此我的问题是如何删除uploads_Filling_文件(变量为$files_2)文件夹中文件的另一个副本


以下是我的输出:


要比较文件是否存在于两个目录中,您需要basename。使用scandir()不是最好的方法,因为您还将收到无法删除的目录,但您可以尝试使用“.”和“..”始终存在(在*NIX系统中)

正确的方法是迭代器,它不会将所有内容读入内存,这样可以在非常大的目录上节省速度和内存

下面是一个如何删除存在于不同位置的文件的代码示例

const PATH1='upload_dms_file/uploads_meeting_document/';
const PATH2='upload_dms_file/uploads_filling_file/';
$files1=getFiles(路径1);
$files2=getFiles(路径2);
$intersects=array\u intersect($files1,$files2);
foreach($作为$filename相交){
删除文件(路径1,$filename);
删除文件(路径2,$filename);
}
函数getFiles(字符串$path):数组
{
$files=[];
$iterator=新目录迭代器($path);
foreach($iterator作为$fileInfo){
如果($fileInfo->isFile())$files[]=$fileInfo->getFilename();
}
返回$files;
}
函数deleteFile($path,$filename){
$fullpath=$path.$filename;
如果(文件_存在($fullpath))取消链接($fullpath);
}

要比较文件是否存在于两个目录中,您需要basename。使用scandir()不是最好的方法,因为您还将收到无法删除的目录,但您可以尝试使用“.”和“..”始终存在(在*NIX系统中)

正确的方法是迭代器,它不会将所有内容读入内存,这样可以在非常大的目录上节省速度和内存

下面是一个如何删除存在于不同位置的文件的代码示例

const PATH1='upload_dms_file/uploads_meeting_document/';
const PATH2='upload_dms_file/uploads_filling_file/';
$files1=getFiles(路径1);
$files2=getFiles(路径2);
$intersects=array\u intersect($files1,$files2);
foreach($作为$filename相交){
删除文件(路径1,$filename);
删除文件(路径2,$filename);
}
函数getFiles(字符串$path):数组
{
$files=[];
$iterator=新目录迭代器($path);
foreach($iterator作为$fileInfo){
如果($fileInfo->isFile())$files[]=$fileInfo->getFilename();
}
返回$files;
}
函数deleteFile($path,$filename){
$fullpath=$path.$filename;
如果(文件_存在($fullpath))取消链接($fullpath);
}