cs_Burnside
Messages postés1132Date d'inscriptionmercredi 28 août 2002StatutMembreDernière intervention 6 mars 2020
-
10 oct. 2007 à 15:19
cs_Burnside
Messages postés1132Date d'inscriptionmercredi 28 août 2002StatutMembreDernière intervention 6 mars 2020
-
11 oct. 2007 à 11:31
Bonjour,
Je suis occupé à créér un script qui grace un un form va créer le repertoire voulu par l'utilisateur et ensuite copier le contenu d'un répertoire dans ce fameux répertoire de l'utilisateur.
J'ai un form on rentre Burnside il me crée bien le repertoire Burnside, le problème c'est la copie des fichiers d'un repertoire vers ce répertoire...
cs_Burnside
Messages postés1132Date d'inscriptionmercredi 28 août 2002StatutMembreDernière intervention 6 mars 2020 11 oct. 2007 à 11:31
function MakeDir($dir)
{
// On vérifie qu'il y ait bien un dossier if (($dir '') or ($dir '/') or (is_dir($dir))) {
return 0;
}
// Si c'est un dossier simple on le crée
if (strrpos($dir, '/') == false) {
mkdir($dir);
return 0;
}
$pos_ini = 0;
$dir_depart = '';
while($dir) {
// Trouve le dossier au début de $dir
$dossier = '';
$pos_ini = 0;
$t = $pos_ini;
while((strrpos($dossier, '/') == false) and ($t <= strlen($dir))) {
$t += 1;
$dossier = substr($dir, $pos_ini, $t);
}
if (!is_dir($dir_depart . $dossier)) {
mkdir($dir_depart . $dossier);
}
$dir = substr($dir, $t, strlen($dir));
$dir_depart .= $dossier;
}
}
function create_tab ($dir) { // fonction creant le tableau contenant les repertoires et fichiers
$dir = rtrim ($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire
if (is_dir ($dir)) // si c'est un repertoire
$dh = opendir ($dir); // on l'ouvre
else {
echo $dir, ' n\'est pas un repertoire valide'; // sinon on sort! Appel de fonction non valide
exit;
}
while (($file = readdir ($dh)) !== false ) { //boucle pour parcourir le repertoire
if ($file !== '.' && $file !== '..') { // no comment
$path =$dir.'/'.$file; // construction d'un joli chemin...
if (is_dir ($path)) { //si on tombe sur un sous-repertoire
$tableau[$dir]['dir'][] = $path;
$tabTmp = create_tab ($path); // appel recursif pour lire a l'interieur de ce sous-repertoire
if (is_array ($tabTmp) && is_array ($tableau))
$tableau = array_merge ($tableau, $tabTmp);
}
else
$tableau[$dir]['file'][] = $path;
}
}
closedir ($dh); // on ferme le repertoire courant
if (isset ($tableau)) {
return $tableau;
}
}
?>
<?php
if ( isset ( $_POST['submit'] ) ) {
$repertoire = $_POST['repertoire'];
MakeDir($repertoire);
echo "repertoire ". $repertoire ." correctement inséré
";
copier_rep ($repertoire, 'source'); // 1er paramètre : le répertoire de destination sous forme d'une chaine
// 2d paramètre : le répertoire à copier sous forme d'une chaine ou d'un tableau