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 Perl Discussion :

Recuperation d'une donnée


Sujet :

Langage Perl

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Points : 217
    Points
    217
    Par défaut Recuperation d'une donnée
    Bonjour,

    J'aimerai affichier le resultat d'un petit programme Perl dans une page PHP (ou html).
    J'ai cherché dans tous les sens, mais rien ne fonctionne, sauf si je code l'url du programme perl dans un navigateur !

    Voir mon post sur le forum php
    http://www.developpez.net/forums/d84...tat-prog-perl/

    Si quelqu'un a une idée, cela me dépanerait bien !

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Le plus simple est dans le script php, de lancer le script Perl avec la fonction exec():
    http://php.net/manual/fr/function.exec.php
    de récupérer son affichage dans le tableau de lignes et ensuite afficher ce tableau ou faire tout autre traitement.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Points : 217
    Points
    217
    Par défaut
    Citation Envoyé par estofilo Voir le message
    Le plus simple est dans le script php, de lancer le script Perl avec la fonction exec():
    http://php.net/manual/fr/function.exec.php
    de récupérer son affichage dans le tableau de lignes et ensuite afficher ce tableau ou faire tout autre traitement.
    Bonjour,
    J'essaie, en vain, de faire un exec, mais ça n'a pas l'air de fonctionner ...
    Voici mon code d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $res=exec("C:/Perl/perl.exe  C:/modules_perl/tempcpu.pl", $out = array());
    echo '<br>out : '.strlen($out);
    et la reponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Array to string conversion in E:\site\www\test.php on line 4
     
    out : 5
    J'ai bien 5 octets de retour, mais quand j'essaie de voir $out[0] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index: 0 in E:\site\www\test.php on line 4
    Je prcise qu'Apache est en safe_mode, cela change il quelque chose ?

    Merci encore

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Le code montré a quelques problèmes.Voici une version qui pourrait fonctionner mieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $out=array(); $ret=0;
    exec("C:/Perl/perl.exe  C:/modules_perl/tempcpu.pl", $out, $ret);
    echo "code resultat=$ret";  // devrait valoir 0 si ça fonctionne
    foreach ($out as $ligne) {  // affiche la sortie de la commande perl ligne par ligne
      echo htmlspecialchars($out);
    }
    Je ne suis pas certain que l'antislash soit le bon séparateur de répertoire pour Windows, ça dépend si php fait la translation. Eventuellement essayer "c:\\Perl\\perl.exe" si ça ne fonctionne pas avec l'antislash.

    Je prcise qu'Apache est en safe_mode, cela change il quelque chose ?
    Je pense que c'est php qui est en safe_mode, pas apache. Mais effectivement s'il est activé, la fonction exec() n'acceptera de lancer un programme que dans le répertoire spécifié par la directive safe_mode_exec_dir, donc ça peut être un problème.
    Voir la doc: http://www.php.net/manual/fr/ini.sec...-mode-exec-dir

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Points : 217
    Points
    217
    Par défaut
    Bonsoir,

    Merci pour ta réponse, et désolé pour le lapsus sur Apache ...
    Après un essai infructueux, j'ai remplacé les "/" de la commande, modifié l'instruction dans la boucle er c'est OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $out=array(); $ret=0;
    exec("C:\\Perl\\perl.exe  C:/modules_perl/tempcpu.pl", $out, $ret);
    echo "code resultat=$ret";  // devrait valoir 0 si ça fonctionne
    foreach ($out as $ligne) {  // affiche la sortie de la commande perl ligne par ligne
      echo htmlspecialchars($ligne);
    }
    Merci pour ton coup de main !
    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recuperation d'une donnée
    Par MaInR0 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/08/2007, 13h15
  2. Réponses: 1
    Dernier message: 21/01/2007, 23h22
  3. [VBA-E]recuperation d'une donnée a travers un activeX
    Par ferry.jules dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 07/06/2006, 11h48
  4. Recuperation d'une donnée dans ma popup
    Par leloup84 dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2006, 15h59
  5. recuperation d'une donnée
    Par BernardT dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2005, 16h12

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