PHP如何更改<li>元素的字体颜色

时间:2019-08-20 12:33:22

标签: php function if-statement replace colors

在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";
}

2 个答案:

答案 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>';