php4 - commandes system - pipe - flush
9 messages
• Page 1 sur 1
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
php4 - commandes system - pipe - flush
j'aimerai savoir si quelqu'un a trouvé un moyen de piper un retour de commande system en "temps réel" vers le navigateur
style un scp -r sur un rep bien rempli j'aurai aimé voir aparaitre le retour systeme ligne par ligne dans mon navigateur
lol
rog
style un scp -r sur un rep bien rempli j'aurai aimé voir aparaitre le retour systeme ligne par ligne dans mon navigateur
lol
rog
-

julienr - WRInaute impliqué

- Messages: 911
- Inscription: 5 Aoû 2003
- Code: Tout sélectionner
<?php
$cmd = 'wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.37-linux-i686.tar.gz/'
$cmd .= 'from/http://ftp.club-internet.fr/mirrors/ftp.mysql.com/';
error_reporting(E_ALL);
$handle = popen( $cmd.' 2>&1', 'r');
while( $read = fread($handle, 100) ) {
echo nl2br($read);
flush();
}
pclose($handle);
?>
testé sur mon serveur ca affiche en live le téléchargement du fichier
c quoi ta config toi ?rog a écrit:j'ai essay& mais ça ne le fait qu'en php-cli
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
moi j'ai un server linux
merci d'avoir pris le temps de tester mais ça ne fonctionne toujours pas
des qu'il y a du html ça bloque tout par contre ton exemple m'a eclairé et je vais le transformer en ajax
ça va debugger mon script puisque c'est le client qui va demander l'execution systeme
en plus la c'est pour un webmin qui permet au client de gérer ses sauvegardes distantes, comme un maj peut prendre 30 minutes, il est indispensable qu'il y ait un retour en temps réel
rog
merci d'avoir pris le temps de tester mais ça ne fonctionne toujours pas
des qu'il y a du html ça bloque tout par contre ton exemple m'a eclairé et je vais le transformer en ajax
ça va debugger mon script puisque c'est le client qui va demander l'execution systeme
en plus la c'est pour un webmin qui permet au client de gérer ses sauvegardes distantes, comme un maj peut prendre 30 minutes, il est indispensable qu'il y ait un retour en temps réel
rog
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
edit :
il y a des differences de comportement entre FF et IE
sur ce coup la FF l'a emporté haut la main
lol
comme j'ai fait tous mes tests de dev sous IE, le script ajax etait cool jusqu'au au document.write
j'ai quand developpé une version très austère en html qui a marché sous IE
ma prochaine release sera donc debugguée sous FF
merci encore
rog
il y a des differences de comportement entre FF et IE
sur ce coup la FF l'a emporté haut la main
lol
comme j'ai fait tous mes tests de dev sous IE, le script ajax etait cool jusqu'au au document.write
j'ai quand developpé une version très austère en html qui a marché sous IE
ma prochaine release sera donc debugguée sous FF
merci encore
rog
-

julienr - WRInaute impliqué

- Messages: 911
- Inscription: 5 Aoû 2003
Un truc qui va pas sur mon script, c'est l'affichage qui se fait au fure et à mesure dans la page et qu'une fois arrivé en bas de la page, il faut scroller en permanence manuellement pour voir la suite de la trace.
Dans un terminal le scroll se fait vers le haut, ce qui fait qu'on voit toujours la derniere ligne écrite
Comment faire pour générer un comportement identique ? avec du css ? du js ?
Dans un terminal le scroll se fait vers le haut, ce qui fait qu'on voit toujours la derniere ligne écrite
Comment faire pour générer un comportement identique ? avec du css ? du js ?
-

rog - WRInaute passionné

- Messages: 1662
- Inscription: 21 Sep 2006
ça c'est une bonne colle, faudrait que j'y réfléchisse
mais comme tu peux le voir je vais déjà bien stabiliser cetter version
rog
- Code: Tout sélectionner
#################################################################################################################
# launch rsync command through a shell file #
#################################################################################################################
elseif(isset($_REQUEST['op']) && $_REQUEST['op'] == 'bak')
{
#checking the config was not bypassed
# action
if(!$key = array_search($_REQUEST["_input_action"],$action))
{
die("bad action");
}
elseif(!isset($comp[$_REQUEST["_input_comp"]]))
{
die("bad computer");
}
elseif(!isset($module_dir[$_REQUEST["_input_module"]]))
{
die("bad module");
}
#################################################################################################################
# find the shell file
#$tunnel = SSH.' '.ID_DSA_KEY_APACHE." -L ".$local_port[$computer].":".$target_server[$computer].":".REMOTE_PORT." SvcwRsync@".$sshd_server[$computer]." -T -N -f";
#
define('SHELL_FILE',$_SERVER['DOCUMENT_ROOT']."/command/".$_REQUEST["_input_action"].'/'.$_REQUEST["_input_comp"].$_REQUEST["_input_module"].'.sh');
#
#
echo ('--------------------------------------------------------------------------------------------<br>');
echo ('commande : '.$_REQUEST["_input_action"]." le module ".$module_name[$_REQUEST["_input_module"]]." de l'ordinateur ".$comp[$_REQUEST["_input_comp"]]);
echo ('<br>--------------------------------------------------------------------------------------------<br>');
flush();
flush();
echo ('<u>Requête en cours de traitement</u><br>');
flush();
flush();
#
$fp = fopen(LOG_FILENAME,"w+");
#
if(is_file(SHELL_FILE))
{
#$output = shell_exec('/bin/sh '.$shell_file." &>".LOG_FILENAME);
$output = '';
#
$handle = popen(SHELL_PATH.' '.SHELL_FILE.' 2>&1','r');
#
while($read = fread($handle,100))
{
echo nl2br($read);
fwrite($fp,$read);
flush();
#
#$output = $read;
}
pclose($handle);
#print($output);
}
#
echo ('<u>Transfert terminé</u>');
flush();
flush();
#
#$fp = fopen(LOG_FILENAME,"w+");
#fwrite($fp,$output);
fclose($fp);
mais comme tu peux le voir je vais déjà bien stabiliser cetter version
rog
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

