paramètre dans la fonction system()

newb
Invité n'ayant pas de compte PHPfrance

29 oct. 2006, 18:35

Salut,

Je cherche a passer un fichier en parametre à system() (ou passthru() / exec(), j'avoue n'avoir pas bien saisi les diferences!)
$cmd = system('ls -l $fichier') ;
mais ca ne fonctionne pas..

Comment faire ?
Merci

newb
Invité n'ayant pas de compte PHPfrance

29 oct. 2006, 18:45

j'ai trouvé seul ;)
$cmd = "ls -l $fichier';
system ($cmd,$retval)
cool :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

29 oct. 2006, 20:04

Pour l'explication (et la correction du code que tu donnes si d'autres passaient par là) le problème vient de tes apostrophes entre lesquelles les variables php ne sont pas interprétées. Il te faut par conséquent sortir ta variable de la chaine ou utiliser des guillemets :
$var = toto;
echo "Valeur : $var"; // affiche "Valeur : toto"
echo 'Valeur : $var'; // affiche "Valeur : $var"
echo 'Valeur : '.$var; // affiche "Valeur : toto"
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1961 Messages

30 oct. 2006, 03:58

Bonsoir,
Et j'ajouterais
$cmd = "ls -l $fichier';
system ($cmd,$retval)
ça donne
Parse error: syntax error, unexpected $end in /chemin/fichier.php on line n
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein