Import initial du site ship2net.fr : pages PHP, config, traductions t(), composer.json

This commit is contained in:
2026-09-28 08:04:25 +00:00
commit 82f431b3ae
175 changed files with 25531 additions and 0 deletions
+250
View File
@@ -0,0 +1,250 @@
<?php
//==================================================================================================================
// Fonction : Lit le fichier JSON dont le nom est passé en paramètre et renvoit un tableau dénommé avec les
// champs du fichier.
// Reçoit : Le nom complet du fichier
// Retour : Le tableau dénommé ou FALSE si erreur
//==================================================================================================================
function lecture_json($fichier)
{
$json = file_get_contents($fichier);
if ($json === false) return (false); // Si erreur lors du 'file_get_contents'
else return(json_decode($json, true));
}
//==================================================================================================================
// Fonction : Copie le contenu du répertoire d'origine dans le répertoire de destination, y compris ses
// sous-répertoires s'il y en a.
// Reçoit : Le nom complet du répertoire origine et destination.
// Retour : Le nombre de fichiers copiés
//==================================================================================================================
function copie_repertoire($source , $destination)
{
if ((!file_exists($source)) && (!is_dir($source))) return -1; // Si le répertoire source n'existe pas ou est un fichier (pas un répertoire)
$dossier_source = opendir($source); // Ouverture de la source
if (!file_exists($destination)) mkdir($destination, fileperms($source)); // Si la destination n'existe pas, on la créée
$total = 0;
while ($fichier = readdir($dossier_source))
{
$l = array('.', '..');
if (!in_array( $fichier, $l))
{
if (is_dir($source."/".$fichier))
{
$total += copie_repertoire("$source/$fichier", "$destination/$fichier");
}
else
{
copy("$source/$fichier", "$destination/$fichier");
$total++;
}
}
}
return $total;
}
//==================================================================================================================
// Fonction : Ouvre et parcours le répertoire dont le nom est passé en 1er paramètre. Si un répertoire avec le nom
// reçu en 2nd paramètre est trouvé, retour de TRUE.
// Reçoit : Le nom complet du répertoire de recherche et le nom du répertoire à chercher.
// Retour : TRUE si le répertoire recherché a été trouvé, FALSE sinon
//==================================================================================================================
function repertoire_contient_repertoire($repertoire, $recherche)
{
$retour = false;
if ($handle = opendir($repertoire))
{
while (($file = readdir($handle)) !== false)
{
if ('.' === $file) continue;
if ('..' === $file) continue;
if ((is_dir($repertoire.'/'.$file)) AND
($file == $recherche))
{
$retour = true;
break;
}
}
closedir($handle);
}
return($retour);
}
//==================================================================================================================
// Fonction : Ouvre et parcours le répertoire dont le nom est passé en paramètre. Si un fichier avec le nom qui
// contient le marqueur reçu en second paramètre, le nom du fichier est retourné. Sinon, une chaine
// vide est retournée.
// La fonction s'arrête sur le premier fichier répondant au marqueur. Le marqueur est cherché partout
// dans le nom de fichier, pas uniquement au début ou à la fin.
// Reçoit : Le nom complet du répertoire de recherche et le marqueur de fichier à chercher.
// Retour : Le nom du fichier si trouvé ou une chaine vide
//==================================================================================================================
function recherche_fichier_repertoire($repertoire, $marqueur)
{
$fichier = "";
if ($handle = opendir($repertoire))
{
while (($file = readdir($handle)) !== false)
{
if ('.' === $file) continue;
if ('..' === $file) continue;
if ((is_file($repertoire.'/'.$file)) AND
(strstr($file, $marqueur) != false))
{
$fichier = $file;
break;
}
}
closedir($handle);
}
return($fichier);
}
//==================================================================================================================
// Fonction : Vérifie si le répertoire dont le nom est passé en paramètre est vide ou non.
// Reçoit : Le nom complet du répertoire de recherche.
// Retour : TRUE si vide, FALSE si Non vide
//==================================================================================================================
function repertoire_est_vide($repertoire)
{
$retour = true;
if ($handle = opendir($repertoire))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$retour = false;
break;
}
}
closedir($handle);
}
return $retour;
}
//==================================================================================================================
// Fonction : Supprime du répertoire reçu en paramètre, tous les fichiers qui contiennent (pas forcément au début
// ou à la fin) le marquer reçu.
// Reçoit : Le nom complet du répertoire de recherche et le marqueur de fichier à chercher.
// Retour : TRUE si Ok, FALSE si erreur
//==================================================================================================================
function suppression_fichier_repertoire($repertoire, $marqueur)
{
for ($max = 0; $max < MAX_BOUCLES_SUPPRESSION_FICHIER_REPERTOIRE; $max ++)
{
$fichier = recherche_fichier_repertoire($repertoire, $marqueur);
if ($fichier == "") break;
elseif (unlink($repertoire."/".$fichier) === false) return(false);
}
if ($max == MAX_BOUCLES_SUPPRESSION_FICHIER_REPERTOIRE) return(false);
else return(true);
}
//==================================================================================================================
// Fonction : Supprime le répertoire reçu en paramètre, y compris les sous-répertoires de façon récursive.
// Reçoit : Le nom complet du répertoire à supprimer.
// Retour : TRUE si Ok, FALSE si erreur
//==================================================================================================================
function suppression_repertoire($repertoire)
{
$files = array_diff(scandir($repertoire), array('.','..'));
foreach ($files as $file)
{
(is_dir($repertoire."/".$file) && !is_link($repertoire)) ? suppression_repertoire($repertoire."/".$file) : unlink($repertoire."/".$file);
}
return rmdir($repertoire);
/* if(is_dir($repertoire))
{
$files = glob( $repertoire . '*', GLOB_MARK ); //GLOB_MARK adds a slash to directories returned
foreach($files as $file) suppression_repertoire($file);
rmdir($repertoire);
}
elseif(is_file($repertoire))
{
unlink($repertoire);
return false;
}
return true;
*/
}
//==================================================================================================================
// Fonction : Supprime du répertoire passé en paramètres tous les fichiers dont la date de dernière modification
// est antérieure à aujourd'hui de plus de N jours.
// Reçoit : Le nom complet du répertoire à supprimer, le nombre de jours d'antériorité maximale et un flag Verbose
// Retour : 0 si Ok, -1 si erreur
//==================================================================================================================
function purge_repertoire($repertoire, $nb_jours_anteriorite, $verbose = true)
{
$retour = 0;
$date_max = new DateTime('-'.$nb_jours_anteriorite.' days');
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($repertoire, FilesystemIterator::SKIP_DOTS),
RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($iterator as $fileInfo)
{
if ($fileInfo->isFile())
{
$filePath = $fileInfo->getPathname();
$modificationTimestamp = $fileInfo->getMTime();
$modificationDate = new DateTime('@' . $modificationTimestamp);
if ($modificationDate < $date_max)
{
if (unlink($filePath))
{
if ($verbose) echo "\tLe fichier [".$filePath."] a été supprimé.\n";
}
else
{
if ($verbose) echo "\t/!\\ Le fichier [".$filePath."]. est antérieur a ".$nb_jours_anteriorite." jours mais n'a pas pu être supprimé...\n";
$retour = -1;
}
}
}
}
return($retour);
// Attention : non testé !! (Pierre 09/2024) :
// Get a list of all directories inside the root directory and delete the empty ones
// $subdirectories = array_filter(glob($repertoire . '*'), 'is_dir');
// foreach ($subdirectories as $subdirectory) {
// if (count(scandir($subdirectory)) === 2) {
// // if (rmdir($subdirectory)) {
// // if ($verbose) echo "Directory: {$subdirectory} removed.<br>";
// // } else {
// // if ($verbose) echo "Error removing directory: {$subdirectory}.<br>";
// // }
// echo "Directory: {$subdirectory} removed.<br>";
// }
// }
}