Exécuter programme avec php, javascript...
Résolu
Nono_igo
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
Nono_igo Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
Nono_igo Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Pour mon site web, j'aimerais exécuter un programme sur serveur distant (des algorithmes Scilab pour tout dire). Le but final serait donc de donner des paramètres via mon interface web, de les envoyer à Scilab en tâche de fond pour qu'il les traite avec mes algo et de récupérer les résultats de sortie pour les afficher sur une page de mon site.
Alors, je suis parti avec les fonctions exec(), shell_exec(), etc. Voilà en gros ce que ça donne :
Et je reçois seulement sur mon interface web (alors que mon algo tout simple me renvoie aléatoirement "pile" ou "face" sur Scilab avec la fonction disp) :
Array ( ) 1
Est-ce que j'utilise correctement mes fonctions d'exécution ?
En faisant des recherches, il se pourrait que cela soit plus faisable avec javaScript... Si oui, pourriez-vous m'aiguiller sur les bonnes infos ?
Tans de questions qui restent sans réponse ! Merci de m'aider...
Pour mon site web, j'aimerais exécuter un programme sur serveur distant (des algorithmes Scilab pour tout dire). Le but final serait donc de donner des paramètres via mon interface web, de les envoyer à Scilab en tâche de fond pour qu'il les traite avec mes algo et de récupérer les résultats de sortie pour les afficher sur une page de mon site.
Alors, je suis parti avec les fonctions exec(), shell_exec(), etc. Voilà en gros ce que ça donne :
exec('emplacement_de_scilab -nwni -nouserstartup -f emplacement_de_mon_algo.sce', $out, $var); print_r($out); print_r($var);
Et je reçois seulement sur mon interface web (alors que mon algo tout simple me renvoie aléatoirement "pile" ou "face" sur Scilab avec la fonction disp) :
Array ( ) 1
Est-ce que j'utilise correctement mes fonctions d'exécution ?
En faisant des recherches, il se pourrait que cela soit plus faisable avec javaScript... Si oui, pourriez-vous m'aiguiller sur les bonnes infos ?
Tans de questions qui restent sans réponse ! Merci de m'aider...
A voir également:
- Exécuter programme avec php, javascript...
- Programme demarrage windows - Guide
- Easy php - Télécharger - Divers Web & Internet
- Telecharger javascript - Télécharger - Langages
- Mettre en veille un programme - Guide
- Message programmé iphone - Guide
8 réponses
Bonjour,
Tu dis :
« Alors que sous Scilab, dans la console, lorsque j'exécute mon algo, il me retourne "pile" ou "face" »
Ce « pile » ou « face », ils apparaissent dans la console, ou dans une fenêtre de Scilab ?
Xavier
Tu dis :
« Alors que sous Scilab, dans la console, lorsque j'exécute mon algo, il me retourne "pile" ou "face" »
Ce « pile » ou « face », ils apparaissent dans la console, ou dans une fenêtre de Scilab ?
Xavier
C'est ce que je fais avec la fonction php : print_r() déjà. Je lis bien mon tableau et c'est là le problème : il est vide ! Alors que sous Scilab, dans la console, lorsque j'exécute mon algo, il me retourne "pile" ou "face"...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Non, si je ne me trompe pas, la fonction print_r() prend un array comme argument. Pour exemple, essaye ça :
La syntaxe print_r($out[0]); fonctionne aussi et affichera seulement le 1er élément de ton tableau. D'ailleurs, je l'ai essayé, et il me retourne : "Notice: Undefined offset: 0 etc...". Ce qui semble bien montrer que mon tableau de retour est vide...
Le problème ne semble pas venir de là, mais merci pour ton aide quand même.
$out = array ('François', 'Michel', 'Nicole', 'Véronique', 'Benoît'); echo '<pre>';//spécificité de la fonction print_r() qui remplace juste <br /> pour que l'affichage soit plus clair. print_r($out); echo '</pre>';
La syntaxe print_r($out[0]); fonctionne aussi et affichera seulement le 1er élément de ton tableau. D'ailleurs, je l'ai essayé, et il me retourne : "Notice: Undefined offset: 0 etc...". Ce qui semble bien montrer que mon tableau de retour est vide...
Le problème ne semble pas venir de là, mais merci pour ton aide quand même.
Bonjour,
@Reivax : Ils apparaissent dans la console lorsque je demande l'exécution de mon script. J'avoue que mon problème pourrait bien venir de là et de mon faible niveau en Scilab... A savoir, comment fait-on une vraie valeur retour à la sortie d'un algo.
@allan : Thx Allan, I will see that quickly and I will say you if it's OK !
@Reivax : Ils apparaissent dans la console lorsque je demande l'exécution de mon script. J'avoue que mon problème pourrait bien venir de là et de mon faible niveau en Scilab... A savoir, comment fait-on une vraie valeur retour à la sortie d'un algo.
@allan : Thx Allan, I will see that quickly and I will say you if it's OK !
Alors d'après le site de Allan, je crois que mon problème viens (j'ai pris un exemple simple) :
* soit des permissions de mon serveur web (car ma commande fonctionne dans la console windows quand je suis dans le répertoire de scilex.exe),
* soit de ma syntaxe qui ne serait pas la bonne...
* soit du chemin d'accès. Est-ce que je devrais mettre le chemin absolu (D:\mon_chemin\scilex) à la place de scilex dans l'exemple précédent ? Ou partir du répertoire de ma page et faire qqch du style : cd..\cd..\mon_chemin\scilex (mais là, la syntace en cmd ?!) ???
Bref, je sens qu'on se rapproche mais ça ne fonctionne pas encore. Est-ce que qq'un à déjà réussi à faire fonctionner ce genre de programme déjà ???
* soit des permissions de mon serveur web (car ma commande fonctionne dans la console windows quand je suis dans le répertoire de scilex.exe),
* soit de ma syntaxe qui ne serait pas la bonne...
$command = 'scilex -nwni -nb -e "m=[1 2 3; 3 4 5] ; disp(m) ; exit ;"'; exec($command, $output); print_r ($output);//et là, j'ai toujours un tableau vide...
* soit du chemin d'accès. Est-ce que je devrais mettre le chemin absolu (D:\mon_chemin\scilex) à la place de scilex dans l'exemple précédent ? Ou partir du répertoire de ma page et faire qqch du style : cd..\cd..\mon_chemin\scilex (mais là, la syntace en cmd ?!) ???
Bref, je sens qu'on se rapproche mais ça ne fonctionne pas encore. Est-ce que qq'un à déjà réussi à faire fonctionner ce genre de programme déjà ???
Bonjour !
Alors j'ai un peu avancé sur le sujet. Grâce à votre aide surtout ! Mon problème venait du chemin d'accès. Je pensais qu'il fallait la même syntaxe que lors de l'exécution dans la console. Mais non, il suffit d'utiliser les ".." pour remonter dans le dossier précédent.
Je vais essayer d'exécuter des algo plus important maintenant, mais je crois qu'on peut dire que le problème résolu !
Merci à tous !
Alors j'ai un peu avancé sur le sujet. Grâce à votre aide surtout ! Mon problème venait du chemin d'accès. Je pensais qu'il fallait la même syntaxe que lors de l'exécution dans la console. Mais non, il suffit d'utiliser les ".." pour remonter dans le dossier précédent.
$path = '..\scilab-5.3.3\bin\\';//le chemin de Scilex.exe en partant de l'emplacement de mon fichier .php $command = $path.'scilex -nwni -nb -e "m=[1 2 3; 3 4 5] ; disp(m) ; exit;"'; exec($command, $output); print_r ($output);// Et cette fois, je récupère bien ma matrice en sortie sur mon interface web !
Je vais essayer d'exécuter des algo plus important maintenant, mais je crois qu'on peut dire que le problème résolu !
Merci à tous !
see http://www.ibm.com/developerworks/opensource/library/os-php-scilab/index.html