Si tu mets la fonction avant, ca sera plus facile aussi: 
  
 
<html>
<head>
<title></title>
</head>
<body bgcolor=#DCDCDC>
<?
   function ping()
   {
    exec("ping serveur", $list);
    $nb = count($list);
    $to_display=false;
    for($i=0;$i<$nb;$i++)
     {
      if(strpos($list[$i],"TTL")>0)
      $to_display=true;
     }
    if ($to_display)
     $result="<img src=\"./ok.GIF\">";
    else
     $result="<img src=\"./erreur.GIF\">";
    
    return $result;      
   }
?> 
<center>
<table border=2>
<tr>
 <td><img src="./switch1e2.gif"></td>
 <td><?  echo ping();?></td>
</tr>
</table>
</center>
  
</html>
 
  
tu peux optimiser ton code en mettant en parametre l'@ ip que tu veux pinger: 
  
 
<html>
<head>
<title></title>
</head>
<body bgcolor=#DCDCDC>
<?
   function ping($ip)
   {
    exec("ping $ip", $list);
    $nb = count($list);
    $to_display=false;
    for($i=0;$i<$nb;$i++)
     {
      if(strpos($list[$i],"TTL")>0)
      $to_display=true;
     }
    if ($to_display)
     $result="<img src=\"./ok.GIF\">";
    else
     $result="<img src=\"./erreur.GIF\">";
    
    return $result;      
   }
?> 
<center>
<table border=2>
<tr>
 <td><img src="./switch1e2.gif"></td>
 <td><?  
$ip="serveur";
echo ping($ip);?></td>
</tr>
</table>
</center>
  
</html>
 
  
Edit: 
 
je croyais que tu le mettais en parametre pour faire fonctionner le ping... c'est ma faute! un moment de distraction...