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);
}
?>