File "traitement_version01.php"

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

<?php
/**********************************************************************************/

function getLastVersion($liste_fichiers_version)
{
    // Initialisation des variables pour stocker le résultat
    $maxVersion = -1;
    $selectedFile = null;

    // Parcourir chaque fichier
    foreach ($liste_fichiers_version as $file) 
    {
        // Rechercher la version dans la chaîne (par exemple, _v01 ou _v02)
        if (preg_match('/_v(\d+)\.jpg$/', $file, $matches)) 
        {
            $version = (int)$matches[1]; // Extraire le numéro de version
            // Comparer avec la version maximale actuelle
            if ($version > $maxVersion) 
            {
                $maxVersion = $version;
                $selectedFile = $file;
            }
        }
    }

    // Affichage du résultat
    if ($selectedFile !== null) 
    {
        //echo "La chaîne avec la version la plus élevée est : $selectedFile\n";
        return( $selectedFile);
    } 
    else 
    {
        return(null);
    }
}
/**********************************************************************************/

function scan_repertoire($chemin)
{
    // Lire le contenu du répertoire
    $scan_tous_fichier = scandir($chemin);
    
    $liste_fichiers = [];
    
    foreach ($scan_tous_fichier as $fichier) 
    {
        // Ignorer les entrées spéciales "." et ".."
        if ($fichier !== "." && $fichier !== "..") 
        {
            $liste_fichiers[] = $fichier;
        }
    }

    return($liste_fichiers);
}
/**********************************************************************************/

function detection_fichier_version($fichier, $liste_fichiers)
{
    // Extraire la partie du nom sans extension
    $baseName = pathinfo($fichier, PATHINFO_FILENAME);

    // Tableau pour stocker les fichiers correspondants
    $matchingFiles = [];

    // on ajoute le fichier en version initial
    $matchingFiles[] = $fichier;

    // Parcourir la liste des fichiers
    foreach ($liste_fichiers as $element) 
    {
        // Extraire la partie du nom sans extension
        $currentBaseName = pathinfo($element, PATHINFO_FILENAME);
        // Vérifier si le fichier partage une partie commune de nom avec le fichier de référence
        if (strpos($currentBaseName, $baseName) === 0 && $currentBaseName !== $baseName)
        {
            $matchingFiles[] = $element;
        }
    }

    return($matchingFiles);
}
/**********************************************************************************/

function compte_version($chemin, $fichier)
{
    //$chemin = "/home/analogde/www/Document_workarea/patrice/Test";
    //$chemin_format = str_replace("~", "/home/analogde", $chemin);
    
    $liste_fichiers = [];
    $liste_fichiers_version = [];

    $liste_fichiers = scan_repertoire($chemin);
    //echo "<pre>";
    //print_r($liste_fichiers);
    //echo "</pre>";
   
    $liste_fichiers_version = detection_fichier_version($fichier, $liste_fichiers);
    //echo "<pre>";
    //print_r($liste_fichiers_version);
    //echo "</pre>";

    return($liste_fichiers_version);
}

/**********************************************************************************/
function fileExists($chemin, $fichier)
{
    $fichier_telechargement = $chemin ."/" .$fichier;
    
    if ( file_exists( $fichier_telechargement )) 
    {
        return(true);
    }
    else
    {
        return(false);
    }
}

/**********************************************************************************/
function traitement_version($chemin, $fichier)
{
    //$chemin = "/home/analogde/www/Document_workarea/patrice/Test";
    //$fichier = "capture_IC616.jpg";
    //$fichier = "plouf.pdf";

    if( fileExists($chemin, $fichier) )
    {
        $liste_fichiers_version = [];
        $liste_fichiers_version = compte_version( $chemin, $fichier );
        $nb_version = count($liste_fichiers_version);

        //echo " Total :" .$nb_version ."<br>";
    
        if( $nb_version == 0)
        {
            //return("vide");
        }
        else
        {
            if( $nb_version == 1)
            {
                $last_version = $fichier;
                //echo "Derniere version : " .$last_version ."<br>";
            }
            if( $nb_version > 1)
            {
                $last_version = getLastVersion($liste_fichiers_version);
                //echo "Derniere version : " .$last_version ."<br>";
            }

            //return($last_version);
        }
    }
    else
    {
        echo "Boom";
        //return("erreur");
    }

    $tableau_retour = [];
    $tableau_retour[] = $nb_version;
    $tableau_retour[] = $last_version;
    
    return($tableau_retour);

   /* $last_version = getLastVersion($liste_fichiers_version);

    if( $last_version !== null)
    {
        echo $version;
    }
    else
    {
        echo "bada";
    }*/
}
/**********************************************************************************/
/*
    $chemin = "/home/analogde/www/Document_workarea/patrice/Test";
    $fichier = "capture_IC616.jpg";
    $fichier = "plouf.pdf";

    $tableau_retour = traitement_version($chemin, $fichier);

    echo "<pre>";
    print_r($tableau_retour);
    echo "</pre>";
   */

/**********************************************************************************/



?>