[PHP] écrire dans un terminal linux à partir d'un script

écrire dans un terminal linux à partir d'un script [PHP] - PHP - Programmation

Marsh Posté le 28-04-2010 à 10:45:22    

Bonjour,
 
J'ai fait un script qui lance le terminal de linux avec la commande exec() ensuite je souhaite écrire une commande dans le terminal donc j'ai essayé echo() et print() mais ça m'écrit la commande devant comme dans l'exemple suivant "Rtest@ubuntu:~/Bureau$".  
Or je voudrais que la commande s'écrive dèrrière le $, mais je ne sais pas comment faire.
 
est ce que quelqu'un peut me donner une piste,
 
merci d'avance,
Cordialement,
mike0794.

Reply

Marsh Posté le 28-04-2010 à 10:45:22   

Reply

Marsh Posté le 28-04-2010 à 11:19:50    

Oui, echo() ou print(), cela écrit dans la page HTML, cela n'écrit pas ailleurs.

Reply

Marsh Posté le 28-04-2010 à 11:45:21    

est ce qu'il n'y a pas une fonction pour écire dans le terminal?

Reply

Marsh Posté le 28-04-2010 à 11:59:00    

olivthill a écrit :

Oui, echo() ou print(), cela écrit dans la page HTML, cela n'écrit pas ailleurs.


 
Non. Ca écrit sur la sortie standard.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2010 à 12:00:04    

mike0794> Il faut que tu regardes plutôt du coté de proc_open : http://fr.php.net/manual/fr/function.proc-open.php


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-04-2010 à 15:22:38    

Oui je pense que tu as raison mais je viens de lire la fonction et je ne comprend pas comment elle marche.
Au début je défini $cmd='nom_commande", par contre pour $descriptorspec je définis:
0 => array("pipe", "r" ),  //pipe ou le processus va lire
1 => array("pipe", "w" ), //pipe ou le processus va écrire
par contre pour le 2 il faut mettre un fichier mais je ne comprend pas à quoi sert ce fichier.

Reply

Marsh Posté le 28-04-2010 à 16:19:49    

le "souci" dans ton raisonnement, c'est que ce qui se situe derrière le $ est la "future commande" qui sera exécutée dès que l'utilisateur appuiera sur "entrée" et ton script PHP retourne un résultat d'une commande après l'exécution de celle-ci : donc c'est normal qu'il te l'affiche "avant".


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-04-2010 à 11:14:33    

Bonjour,
 
j'ai trouvé un script que j'ai modifié pour utiliser la fonction proc-open(). Je l'utilise pour ouvrir un nouveau terminal et je souhaiterais écrire dans ce terminale en lisant des commandes qui sont dans un fichier texte. Je voudrais donc savoir ce qu'il faut que je change dans mon script pour que l'entrée soit sur un fichier.
 
Voici mon code:
<?php
$descriptorspec = array(  
0 => array("file","/home/test/Bureau/autoR.r","r" ),  // stdin est un fichier où le processus va lire
1 => array("pipe", "w" ), // stdout est un pipe où le processus va écrire
2 => array("pipe", "a" ) // stderr est un pipe
);  
 
$process = proc_open('gnome-terminal', $descriptorspec, $pipes);  
 
if (is_resource($process))  
{  
   // $pipes ressemble à :
   // 0 => fichier accessible en écriture,  
   // 1 => fichier accessible en lecture, connecté à la sortie standard du processus fils
 
   fwrite($pipes[0], 'test');  
   fclose($pipes[0]);  
 
   echo stream_get_contents($pipes[1]);  
   fclose($pipes[1]);  
 
   $return_value = proc_close($process);  
 }  
?>  
 
Merci d'avance
 
Cordialement,
Mike0794

Reply

Sujets relatifs:

Leave a Replay

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