Windows で PHP を使用して、できるだけ早く多くの traceroute に進む必要があります。これが私のコードです:
function tracert($addresses){
set_time_limit(300);
$nbAddresses=count($addresses);
for($i=0; $i<$nbAddresses; $i++){
$tracerts[$i]=popen('tracert '.$addresses[$i], 'r');
}
for($i=0; $i<$nbAddresses; $i++){
$results[$i]="<strong>".($i+1).")</strong>";
while(!feof($tracerts[$i])){
$results[$i].=fgets($tracerts[$i])."<br/>";
}
fclose($tracerts[$i]);
}
return $results;
}
私は 2 回ループしています。最初のループでは popen() を使用して traceroute を起動し、2 番目のループでは fgets() を使用して結果をテーブルに戻しています。
しかし、うまくいかないこともあります: traceroute の戻り値が空です。したがって、基本的に私のプログラムは traceroute の番号を表示して次へ進むだけです。これは、4 つまたは 5 つの traceroute ごとに約 1 回発生します。
毎回動作させるにはどうすればよいですか?