IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] exec recuperation de la sortie


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Par défaut [Système] exec recuperation de la sortie
    Hello a tous,

    J'utilise la fonction EXEC pour exécuter un script sur mon serveur.
    J'aimerais lors de l'exécution pouvoir récupérer les lignes retournées par la commande et plus particulièrement celle renvoyées par une erreur.

    J'arrive bien a récupérer les lignes renvoyé quand tout ce passe bien mais par contre impossible de récupérer les erreurs.

    exemple: La commande suivante
    tar cvzf test.tgz
    est fausse et me renvoye

    tar: Cowardly refusing to create an empty archive
    Try `tar --help' or `tar --usage' for more information.
    lorsque je l'execute manuellement.
    Par contre lorsque je la fais executer par exec j'obtiens ca:

    (fichier de test de differente fonction php)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
                            $cmd ='tar cvzf test.tgz ';//commande qui doit planter
     
    			echo 'Ma commande'.$cmd;
     
    			exec($cmd,$output,$res);
    			echo '<br/>fini exec requete<br/>*************<br/><br/>';
    			print_r($output);
    			echo '<br/>**************<br/><br/>exec '.$res;
    			echo $output[0];
    			echo $output[1];
    			echo '<br/>**************<br/>';
    			foreach($output as $put)
    			{
    				echo '$put\n';
    			}
    			echo '<br/>**************<br/>';
     
     
     
    			passthru($cmd,$pass);
    			echo '<br/>passthru '.$pass;
    M'affiche

    ma commandetar cvzf test.tgz
    fini exe requete
    *************

    Array ( )
    **************

    exec 2
    **************

    **************

    passthru 2
    Alors j'ai bien un numéro d'erreur renvoyé mais je ne sais pas a quoi il correspond.
    Comment faire pour récupérer réellement le texte affichait a l'écran?
    Quel est le code renvoyé quand tout se déroule bien?


    D'avance merci.

    PS Si vous avez une autre fonction mieux que exec pour recuperer les erreurs je suis preneur

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Par défaut
    Bon apriori le code 0 veut dire que tout c'est bien passe.

    Sinon j'ai trouve qu'il fallait faire
    ls moil 2>trace.log

    Pour recuperer le texte d'une erreur 2 et l'enregistrer dans un fichier (quitte a moi de l'ouvrir apres pour lire les erreurs).

    Avec le code suivant j'arrive a recuperer le numero de l'erreur
    #sbin/shi
    cd /test/azipper
    tar cvzf /test/zip.tgz *
    RC=$?
    echo "RC= $RC"
    if [ $RC -ne 0 ] ; then
    echo $RC > erreur.txt
    fi
    Mais par contre je ne sais pas dynamiquement enregistrer le message qui lui correspond :s

    Je cherche je cherche mais je patauge j'avance pas dans le code php :'(

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/07/2007, 23h29
  2. [Système] exec et su
    Par anzar dans le forum Langage
    Réponses: 6
    Dernier message: 29/10/2005, 19h30
  3. [Système][Environnement]recuperer le path de java
    Par Gob4 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 23/09/2005, 17h26
  4. [Process] recuperer entree et sortie d'un programme externe
    Par Gob4 dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 22/09/2005, 19h18
  5. [Runtime][exec]Récupérer les stdout ET stderr
    Par yveslamand dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 20/05/2005, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo