在PHP中,IP地址需要更改<li>
字体颜色:
是否可达= Lime 字体颜色
无法访问= 红色字体颜色
下面是我已经尝试过的代码,它无法正常工作。
主要查询: $ stmt = $ pdo->查询(“ SELECT ip FROM cameras”);
echo '<ul>';
while($row = $stmt -> fetch()) {
echo '<li style=\'color: $color;\'>'.$row['ip'].'</li>';
}
$stmt -> closeCursor();
echo '</ul>';
$check = $row['ip'];
$ping = exec("ping -n 1 $check", $out, $result);
$yes_ping = strpos($ping, 'ms');
if($yes_ping != FALSE) {
$color = "lime";
} else {
$color = "red";
}
答案 0 :(得分:3)
在打印li
元素之前,必须在while循环中定义颜色,如下所示:
echo '<ul>';
while($row = $stmt->fetch())
{
$check = $row['ip'];
$ping = exec("ping -n 1 $check", $out, $result);
$yes_ping = strpos($ping, 'ms');
if($yes_ping != FALSE) {
$color = "lime";
} else{
$color = "red";
}
echo "<li style='color: {$color};'>{$row['ip']}</li>";
}
$stmt->closeCursor();
echo '</ul>';
答案 1 :(得分:1)
将颜色放入函数中
/**
* @param string $ip
* @return string
*/
function getIpColor($ip)
{
$ping = exec("ping -n 1 $ip", $out, $result);
$yes_ping = strpos($ping, 'ms');
if($yes_ping != FALSE) {
return "lime";
}
return "red";
}
现在显示输出:
echo '<ul>';
while($row = $stmt -> fetch()) {
echo '<li style=\'color: ' . getIpColor($row['ip'] . ');\'>'.$row['ip'].'</li>';
}
$stmt -> closeCursor();
echo '</ul>';