Copie de répertoire en php a base de session

erwan444
Invité n'ayant pas de compte PHPfrance

20 mai 2014, 01:28

Bonjour a tous,

J'ai besoin de votre aide d'experts :)
J'ai une classe php qui me permet de copier recursivement un répertoire.
Mon problème est que j'aimerais y inclure 2 sessions qui me permettent de nommer le répertoire source et le répertoire de destination de manière dynamique.
Apparemment mon code contient une erreur... Voici mon code :
-------------------------------------------------------------------------------------------------
<meta http-equiv="refresh" content="1;url=createconfig.php">
<?php
session_start();
$source = 'C:\HostingSpaces\memyself\wwwroot\''.$_SESSION['site_chose'].'';
$destination = 'C:\HostingSpaces\memyself\wwwroot\''.$_SESSION['create'].'';

class Utils
{
public static function deleteDirectory($dir)
{
if (!file_exists($dir)) return true;
if (!is_dir($dir)) return unlink($dir);
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!self::deleteDirectory($dir.DIRECTORY_SEPARATOR.$item)) return false;
}
return rmdir($dir);
}

public static function copyDirectory($sourceDir, $targetDir)
{
if (!file_exists($sourceDir)) return false;
if (!is_dir($sourceDir)) return copy($sourceDir, $targetDir);
if (!mkdir($targetDir)) return false;
foreach (scandir($sourceDir) as $item) {
if ($item == '.' || $item == '..') continue;
if (!self::copyDirectory($sourceDir.DIRECTORY_SEPARATOR.$item, $targetDir.DIRECTORY_SEPARATOR.$item)) return false;
}
return true;
}
}
Utils::copyDirectory($source, $destination);
?>
--------------------------------------------------------------------------------------------------------
Merci d'avance pour votre aide !! :D

ViPHP
xTG
ViPHP | 7331 Messages

20 mai 2014, 07:37

Avec un peu de coloration pour se rendre compte de l'erreur :
$source = 'C:\HostingSpaces\memyself\wwwroot\''.$_SESSION['site_chose'].'';
Correction :
$source = 'C:\\HostingSpaces\\memyself\\wwwroot\\' . $_SESSION['site_chose'];

erwan444
Invité n'ayant pas de compte PHPfrance

20 mai 2014, 09:14

Merci ça marche c'est super gentil :D
Génial en plus j'ai appris un truc =D>

erwan444
Invité n'ayant pas de compte PHPfrance

21 mai 2014, 03:55

Avec un peu de coloration pour se rendre compte de l'erreur :
$source = 'C:\HostingSpaces\memyself\wwwroot\''.$_SESSION['site_chose'].'';
Correction :
$source = 'C:\\HostingSpaces\\memyself\\wwwroot\\' . $_SESSION['site_chose'];
Merci !!! =D>