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>";
*/
/**********************************************************************************/
?>