Bonjour,

Je rencontre quelques problemes de lenteurs d'execution de script, dut a l'attente de la réponse du ping fait par windows, je suis a la recherche d'une solution en PHP me permettant de faire 172 pings en rafale sans attendre le retour.

Voici le code, pour le moment je bidouille avec le time limite d'execution de script de PHP mais bon ce n'est pas tres propre... surtout que je veux faire cette rafale de ping tte les 5 minutes a peu pres.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
<?
//fixe un délai de 1 minutes 50 pour l'execution du script ;
set_time_limit(110);
// Définition du tableau pour etablir le processus de test de connexion
   $descriptorspec = array( 
   0 => array("pipe", "r"), 
   1 => array("pipe", "w"), 
   2 => array("file", "errors.php", "a"), ); 
// fin de définition du tableau pour établir le processus de test de connexion
 
 
//connexion a la base de donnée
	$link = mysql_connect("localhost", "root", "");
//selection de la base de donnée	
	mysql_select_db("Osiris", $link) or die(mysql_error());
 
//execution de la requete sur la table qui sera stocké dans un tableau PHP
	$query = "SELECT * FROM `annuaire_reseau`";
	$result = mysql_query($query, $link) or die($query . " - " . mysql_error());
 
 
//Affichage du nombre d'enregistrements selectionnés	
	$nbResults = mysql_num_rows($result);
	echo "nombre d'enregistrements:".$nbResults;
 
//debut de la boucle de test
$ping = "localhost";
while ($tab = mysql_fetch_array($result))
{
 
		echo "je ping:".$tab['ip']."<br>";
 
//Lancement d'un processus de ping
	$process = proc_open("ping localhost -n 6", $descriptorspec, $pipes); 
if (is_resource($process)) 
	{ 
     $a=0;
    while(!feof($pipes[1]))
    { 
    $a++;
    if ($a==14) $ping = fgets($pipes[1], 128)."<BR>";
    else fgets($pipes[1], 128);
      }
    fclose($pipes[1]); 
 
	}
//ecriture du resultat ds la table
$query2 = "UPDATE annuaire_reseau SET PING='".$ping."' WHERE code=".$tab['code'];
echo $query2;
mysql_query($query2, $link) or die($query . " - " . mysql_error());
 
}
mysql_close($link);
 ?>
Merci de vos réponses !