Commande shell_exec via php

Commande shell_exec via php - PHP - Programmation

Marsh Posté le 16-07-2012 à 15:42:04    

Bonjour,
 
Je souhaite faire appelle a la commande "shell_exec" via une page php. Lorsque j'effectue la commande suivante, tout fonctionne bien :

Code :
  1. $output = shell_exec('echo toto >> /etc/mon_fichier');


Mais malheureusement lorsque je fais appelle a un programme (mpg321 en l’occurrence ici), cela ne fonctionne pas :

Code :
  1. $output = shell_exec('mpg321 mon_fichier.mp3 -w raw && oggenc raw -o mon_fichier.ogg &');


La commande en elle même est correcte et fonctionne bien lorsque je la passe directement dans mon shell mais ne marche pas via ma page php.  
 
Avez-vous une idée de ce qui pourrait être mon problème ? Ou avez-vous une solution afin que je puisse savoir ce que le shell renvoie comme erreur (si il y a) ?  
Merci.
 
Pour info, je suis sur un serveur linux (Ubuntu server 12.04) avec PHP 5.3.10-1ubuntu3.2


---------------
Ggdagg - www.flecheinthepeche.fr
Reply

Marsh Posté le 16-07-2012 à 15:42:04   

Reply

Marsh Posté le 16-07-2012 à 16:24:23    

A mon avis ton shell ne connait pas le chemin ton programme mpg321


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 16-07-2012 à 17:29:20    

Merci KLeMiX pour ta réponse mais en fait, c’était juste un problème de guillemets. Voici donc la bonne ligne :

Code :
  1. $output = shell_exec("mpg321 mon_fichier.mp3 -w raw && oggenc raw -o mon_fichier.ogg &" );


Cependant, je voudrai insérer une variable et la, ce ne fonctionne pas de nouveau :

Code :
  1. $output = shell_exec("mpg321" . $ma_variable . " -w raw && oggenc raw -o mon_fichier.ogg &" );


J'ai essayé toutes les guillemets possibles mais rien a faire :(


---------------
Ggdagg - www.flecheinthepeche.fr
Reply

Marsh Posté le 16-07-2012 à 17:54:22    

Moi je decouperai en 2 partis
 
$Vexecute='mpg321' . $ma_variable . ' -w raw && oggenc raw -o ' . $mon_fichier.ogg. ' &';
 
$output = shell_exec($Vexecute );


---------------
www.pronovolley.fr Faites vos prono sur la ligue de Volley et défiez vos amis. Des cadeaux en fin d'année  www.levoll.fr
Reply

Marsh Posté le 17-07-2012 à 13:11:28    

Parfait ! Merci beaucoup.  
En effet, il faut découper en 2 parties pour que shell_exec exécute correctement la commande comme si cette fonction n'aimait pas les variables
Assez étonnant puisque par exemple ca :

Code :
  1. $output = shell_exec('echo ' . $ma_variable . ' >> /mon_fichier.txt');


fonctionne parfaitement.
Merci


---------------
Ggdagg - www.flecheinthepeche.fr
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed