使用php生成CSV文件中的彩色表

首先,我想说我刚开始使用PHP,所以请善待。我想要做的是从csv文件打印一个表。第一行我想用灰色背景颜色加粗。下一行应与白色和绿色背景交替,文本不是粗体。下面是我的尝试,但它只生成一个包含灰色背景的所有粗体文本的表格
<?php
echo "<html><body><table>nn";
$f = fopen("acsv.csv", "r");

$green = "#DDFFCC";
$white = "#FFFFFF";
$grey = "#EEEEEE";
$color = "#EEEEEE";
echo "<table border=1 cellpadding=4 cellspacing=0>";
echo "<tr>";



while (($line = fgetcsv($f)) !== false) {


        foreach ($line as $cell) {
                if ($color = "#EEEEEE"){
                    echo "<td bgcolor= ".$color."><b>" . htmlspecialchars($cell) . "</b></td>";
                }
                else{
                    echo "<td bgcolor= ".$color.">" . htmlspecialchars($cell) . "</td>";
                }

        }
        echo "<tr>n";

        switch($color){
            case "#EEEEEE":
                $color = "#FFFFFF";
                break;
            case "#FFFFFF":
                $color = "#DDFFCC";
                break;
            case "#DDFFCC":
                $color = "#FFFFFF";
                break;
        }
}
fclose($f);
echo "n</table></body></html>";
编辑: 我还想知道如何使用有意义的名称定义颜色以使代码更具可读性     
已邀请:
要检查$ color是否设置为“#EEEEEE”,您需要在if语句中使用double equals(==),类似于C / C ++ / C#。否则,你只是告诉PHP将$ color设置为“#EEEEEE”。
if ($color == "#EEEEEE"){ 
    
switch语句需要在foreach中,否则颜色只会在循环完成迭代后改变。
<?php
echo "<html><body><table>nn";
$f = fopen("acsv.csv", "r");

$green = "#DDFFCC";
$white = "#FFFFFF";
$grey = "#EEEEEE";
$color = "#EEEEEE";
echo "<table border=1 cellpadding=4 cellspacing=0>";
echo "<tr>";



while (($line = fgetcsv($f)) !== false) {


        foreach ($line as $cell) {
        if ($color == "#EEEEEE"){
                echo "<td bgcolor= ".$color."><b>" . htmlspecialchars($cell) . "</b></td>";
            }
            else{
                echo "<td bgcolor= ".$color.">" . htmlspecialchars($cell) . "</td>";
            }
        switch($color){
            case "#EEEEEE":
                $color = "#FFFFFF";
                break;
            case "#FFFFFF":
                $color = "#DDFFCC";
                break;
            case "#DDFFCC":
                $color = "#FFFFFF";
                break;
        }



        }
        echo "</tr><tr>n";

}
fclose($f);
echo "n</table></body></html>";
    
你需要关闭你的标签:
foreach ($line as $cell) {
                if ($color = "#EEEEEE"){
                    echo "<td bgcolor= ".$color."><b>" . htmlspecialchars($cell) . "</b></td>";
                }
                else{
                    echo "<td bgcolor= ".$color.">" . htmlspecialchars($cell) . "</td>";
                }

        }
        echo "`</tr>`<tr>n";
    

要回复问题请先登录注册