Как использовать функцию l oop для поиска того же файла, чтобы удалить файл? - PullRequest
0 голосов
/ 02 апреля 2020

У меня проблема с удалением двух файлов (оба с одинаковым именем) в двух разных папках. Я попытался использовать функцию unlink для удаления. Как я могу удалить эти два файла в этих двух разных папках, используя PHP функцию unlink?

Может кто-нибудь подсказать мне, как использовать array_intersect, чтобы найти файл выбора, и pu sh поместить их в массив и запустить foreach l oop над этим массивом, чтобы удалить с помощью unlink?

<?php
$i = 1;
$files = scandir("upload_dms_file/uploads_meeting_document");
$files_2 =scandir("upload_dms_file/uploads_filing_file");

$result=array_intersect($files,$files_2);

// $date = $files[$a];
for ($a = 2; $a < count($files); $a++) {

    ?>

    <tr>
        <td> <?php echo $i++; ?></td>
        <td> <a href="upload_dms_file/uploads_meeting_document/<?php echo $files[$a]; ?>" target="_blank"> <?php echo $files[$a]; ?></a></td>
        <td>
            <button class="btn btn-sm btn-primary"><a href="upload_dms_file/uploads_meeting_document/<?php echo $files[$a]; ?>"
                                                      download="<?php echo $files[$a]; ?>" style="color: white;">
                    Download</a></button>
            &nbsp &nbsp
            <button class="btn btn-sm btn-primary"><a
                        href="upload_dms_file/delete_meeting_document.php?name=uploads_meeting_document/<?php echo $files[$a]; ?>" style="color: white;">
                    Delete
                </a></button>
        </td>
    </tr>

    <?php
} ?>

Ниже мой код удаления, он успешно удаляет файл в папке uploads_meeting_document, поэтому мой вопрос заключается в том, как удалить другую копию файла, расположенную в папке uploads_filing_file (переменная - $ files_2)?

<?php
unlink($_GET["name"]);

// Redirecting back
header("Location: " . $_SERVER["HTTP_REFERER"]);
?>


Ниже моя выходная страница:

Output2

Надеюсь, кто-нибудь может подсказать мне, как ее решить. Я застрял эти проблемы в течение нескольких дней. Спасибо.

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете внести изменения в свой код удаления, как показано ниже.

<?php
   $folder1 = "uploads_meeting_document";
   $folder2 = "uploads_filing_file";

   $files = scandir($folder1); 
   $files_2 =scandir($folder2); 

   if(in_array($_GET["name"],$files)) { 
        unlink($folder1 . "/" . $_GET["name"]);
   }; 
   if(in_array($_GET["name"],$files_2 )) { 
        unlink($folder2 . "/" . $_GET["name"]);
   };

   // Redirecting back
   header("Location: " . $_SERVER["HTTP_REFERER"]);
?>

Сначала получите список всех файлов в обеих папках, затем каждую каждую папку, если данный файл существует в папке, затем отмените связь. Это приведет к удалению файла из обеих папок.

...