PHP exec()

Fermé
Bonjour,

Voila j'ai un petit script php qui exécute un programme via la commande exec
le problème c'est que la sortie de exec me retourne rien a part un entier

voila le script :
<?php

ExecProg("unzip");

function ExecProg($comande)
{
 unset ($outcom);
 echo '<br>Execution de : '.$comande;
 
 exec($comande,$outcom,$valret);
 
 echo '<br>Resultat : <br> $valret = '.$valret;
    echo '<pre>';
  print_r($outcom);
 echo '</pre>';
 
 echo '<br>FIN<br>';
 
 return implode("",$outcom);
}

?>


et voici ce qu'il me retourne :

Execution de : unzip
Resultat :
$valret = 127

Array
(
)


FIN


un "ExecProg("echo coucou");"

lui me retourne bien un :

Execution de : echo cooucou
Resultat :
$valret = 0

Array
(
    [0] => cooucou
)


FIN


Donc voila si vous avez une idée pourquoi unzip ne marche pas et echo oui, vous êtes le bienvenu.

4 réponses

  1. L'exécution de "unzip" seul doit certainement engendrer un statut d'erreur si celui-ci n'a pas reçu les paramètres nécessaires.
    A vérifier également, l'existence de la commande "unzip"
    1. la commande unzip seul ne devrais pas me renvoyer la liste des options ?

      comment puis-je savoir si la commande unzip est disponible ?
      1. je viens de faire un petit test

        je viens de compiler le code suivant :

        /*
        
        Compilation : g++ coucou.cpp -o coucou
        By : Jeje-50
        
        */
        
        
        #include <iostream>
        #include <stdlib.h>
        #include <stdio.h>
        
        int main (int argc, char *argv[])
        {
        std::cout << "coucou" << std::endl; 
        return(0);
        }


        et lorsque je l'exécute sur le serveur ( permission a 777 )
        j'obtiens :

        Execution de : ./coucou
        Resultat :
        $valret = 11
        
        Array
        (
        )
        
        Passthru :
        
        ValRetPassthru = 11
        
        FIN
        


        si cela peu vous éclairer ?