File "gestion_filtrage.php"

Full Path: /home/analogde/www/FTP/Monsta-FTP-master/gestion_filtrage.php
File size: 2.6 KB
MIME-type: text/x-php
Charset: utf-8

<?php


function filtrage($fichiers)
{

/*
    $fichiers = [
    "fichier.txt",
    "fichier_v1.txt",
    "fichier_v2.txt",
    "fichier_v3.txt",
    "autre_fichier.txt",
    "fichier_v4.txt",
    "document.pdf",
    "document_v1.pdf",
    "image.png",
    "image_v1.png",
    "unique_file.docx"
    ];
*/

        // Tableau pour stocker les fichiers d'origine et leurs versions
        $resultat = [];
        $autresFichiers = []; // Pour les fichiers sans versions (_vX)

        // Parcourir tous les fichiers

        foreach ($fichiers as $fichier) 
        {
            // Vérifier si le fichier correspond au format avec ou sans version
                if (preg_match('/^(.*?)(_v[0-9]+)?(\.[a-z0-9]+)$/i', $fichier, $matches)) 
                {
                    // Extraire le nom du fichier source (nom de base + extension)

                $sourceFile = isset($matches[2]) ? $matches[1] . $matches[3] : $fichier;

                // Ajouter au tableau des résultats
                if (!isset($resultat[$sourceFile])) 
                {
                    $resultat[$sourceFile] = [];
                }

                $resultat[$sourceFile][] = $fichier;
                } 
                else 
                {
                    // Si le fichier ne correspond pas au modèle avec versions, l'ajouter aux autres fichiers
                    $autresFichiers[] = $fichier;
                }
        }



        // Supprimer les fichiers d'origine qui ont des versions
        foreach ($resultat as $source => &$versions) 
        {

            // Si le tableau contient plus d'un fichier (le fichier source + des versions)
            if (count($versions) > 1) 
            {
                // Supprimer le fichier source
                $versions = array_filter($versions, function ($file) use ($source) 
                {
                    return $file !== $source;
                });
            }

        }

        unset($versions); // Libérer la référence

        // Afficher le tableau réindexé
        //print_r($tableau);

        // Réindexer les sous-tableaux

        //foreach ($tableau as $cle => $sousTableau) {
        //    $tableau[$cle] = array_values($sousTableau);
        //}

        // Afficher le tableau réindexé
        //print_r($tableau);

/*        
        echo "<pre>";
        print_r($resultat);
        echo "<pre>";
*/
        
        $listing_keys = array_keys($resultat);

        // Convertir en chaîne lisible
        $content = print_r($listing_keys, true);

        file_put_contents('blablablabla.txt', $content);

       

     
        return($listing_keys);

       

}

   

?>