PHP COPY

Franck V
Invité n'ayant pas de compte PHPfrance

24 janv. 2012, 12:12

Bonjour,

Novice dans le php j'ai creer une page web pour des utilisateurs afin de deplacer un fichier video vers un autre dossier. Aprés des recherches sur le net voici ma commande :

$file = 'D:\1.txt';
$newfile = 'D:\temp\1.txt';

if (!copy($file, $newfile)) {
echo "La copie du fichier $file a échoué...\n";
}

Jusque ici ok.
Après j'ai mappé des volumes réseau afin de copié les fichier d'un serveur a un autre. OK!

La ou je ne trouve pas la solution, je voudrais que le fichier qui se trouve dans D:\ soit une variable qui est rentré dans un champs par l'utilisateur de type :

$file = 'D:\ $VARIABLE.txt';
$newfile = 'D:\temp\ $VARIABLE.txt';

if (!copy($file, $newfile)) {
echo "La copie du fichier $file a échoué...\n";
}

Et la cela ne marche pas. Pouvez vous m'aider?
Merci d'avance

Eléphanteau du PHP | 17 Messages

24 janv. 2012, 12:31

Essai plutôt comme ceci :
$file = 'D:\\'.$VARIABLE.'.txt';
$newfile = 'D:\temp\\'.$VARIABLE.'.txt';

ViPHP
xTG
ViPHP | 7331 Messages

24 janv. 2012, 12:55

L'explication manquante au code de Shiva :

Utiliser des simples quotes ne permet pas l'évaluation des variables. Il faut soit concaténer soit utiliser des doubles quotes.
Exemple :
$var = 'test';
echo 'ceci est un $var'; // ceci est un $var
echo 'ceci est un ' . $var; // ceci est un test
echo "ceci est un $var"; // ceci est un test
De plus l'antislash est utilisé pour échapper un caractère. Donc pour l'utiliser en tant que caractère d'impression et non d'échappement bah... Il faut l'échapper lui même => \\ :D