Import initial du site ship2net.fr : pages PHP, config, traductions t(), composer.json
This commit is contained in:
@@ -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>";
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user