par
Sasuke » 16 mai 2006, 15:03
Bonjour,
J'ai crée un petit programme, qui execute une commande windows, et qui traite le resultat de cette commande.
Mais un peu de code vaut mieux qu'un long discour ^^
<?
.
.
.
17 $k='c';
18 $q='g';
19 $temp=0;
20 $temp2=0;
21 while($k<$q){
22 $cmd= "freedisk /S $serveur /U $user /P $mdp /D $k: > $filename";
23 $cmd2="freedisk /S $serveur /D $k: > $filename";
24 shell_exec($cmd2);
25 $ouvre = fopen($filename,"r");
26 $p = 0;
27 while ($p < 2){
28 // on recupère la ligne courante
29 $temp = fgets($ouvre);
30 $p++;
31 }
.
.
.
?>
Voici le contenu du fichier :
INFO: 35ÿ273ÿ080ÿ832 bytes free on current volume.
Lors de l'execution du programme il me dit que j'ai exedé le temps d'execution de 30 secondes.
=> Fatal error: Maximum execution time of 30 seconds exceeded in ... on line 25
Comme vous le voyé c'est le fopen qui semble prendre trop de temps.
Quand j'execute la commande dans l'invite de commande ms dos cela marche tout de suite, sauf si j'interroge un serveur distant au quel cas, si je ne peut pas m'y connecter, cela prend environ une dixaine de seconde.
Ce qui me parait bizarre c'est que le script ne bloque pas au niveau de l'execution de la commande mais de l'ouverture du fichier.
Le fichier n'est pas en lecture seul, j'ai bien les droits, bref je ne vois pas pourquoi ca bloque a cet endroit.
Merci