如何使用php将特定csv行的颜色更改为行尾

如何使用php将特定csv行的颜色更改为行尾,php,csv,Php,Csv,我想将第101行的颜色更改为400(最后一行),但我不知道如何更改,以下是我的代码: echo "<html><body><table>\n\n"; $f = fopen("Productos.csv", "r"); while (($line = fgetcsv($f,1000,";")) !== false) { echo "<tr>"; foreach ($line as $k => $cell)

我想将第101行的颜色更改为400(最后一行),但我不知道如何更改,以下是我的代码:

    echo "<html><body><table>\n\n";
$f = fopen("Productos.csv", "r");
while (($line = fgetcsv($f,1000,";")) !== false) {
        echo "<tr>";
        foreach ($line as $k => $cell) {
            $color = ($k == 4) ? 'red' : 'white';
            $class = "style='background-color: $color'";
            echo "<td $class>"  . htmlspecialchars($cell) . "</td>";
        }
        echo "</tr>\n";
}
fclose($f);
echo "\n</table></body></html>";
echo“\n\n”;
$f=fopen(“Productos.csv”,“r”);
while(($line=fgetcsv($f,1000,“;”)!==false){
回声“;
foreach($k=>$cell的行){
$color=($k==4)?“红色”:白色;
$class=“style='background-color:$color';
echo“.htmlspecialchars($cell)”;
}
回音“\n”;
}
外国法郎(f美元);
回音“\n”;

这类东西有不同的处理方法,没有对错之分,一切都取决于具体情况。但是,有一些通用协议,例如样式规则应该与标记分开实现

下面我举两个例子。从您的问题中,我了解到您想要更改wards上某个表行的颜色。但是,在代码中,您似乎在处理实际的表格单元格。出于演示目的,我决定将行颜色从白色更改为绿色,行索引为10。为了证明在这样的方法中也容易考虑列,我在这些绿色行中附加了第三列黄色。显然,这只是一个粗略的例子


选项1:在我看来,最优雅的方法是将样式规则移动到样式表文件中,而不依赖任何特定的标记细节:

PHP:

优点:非常干净紧凑的标记,所有样式逻辑和规则都在一个地方。看看我为便于理解而创建的这个


选项2:更常见的方法是使用类名丰富标记,但在样式表文件中保持实际样式规则的独立性:

PHP:


优点:易于阅读和理解。这是一个演示…

这类东西有不同的方法,没有对错,一切都取决于具体情况。但是,有一些通用协议,例如样式规则应该与标记分开实现

下面我举两个例子。从您的问题中,我了解到您想要更改wards上某个表行的颜色。但是,在代码中,您似乎在处理实际的表格单元格。出于演示目的,我决定将行颜色从白色更改为绿色,行索引为10。为了证明在这样的方法中也容易考虑列,我在这些绿色行中附加了第三列黄色。显然,这只是一个粗略的例子


选项1:在我看来,最优雅的方法是将样式规则移动到样式表文件中,而不依赖任何特定的标记细节:

PHP:

优点:非常干净紧凑的标记,所有样式逻辑和规则都在一个地方。看看我为便于理解而创建的这个


选项2:更常见的方法是使用类名丰富标记,但在样式表文件中保持实际样式规则的独立性:

PHP:


优点:易于阅读和理解。以下是演示…

最好的方法是,如果行号大于100,则为
标记分配一个类。这样,再加上一个相应的CSS规则文件,你就可以随心所欲了,并且不让样式化的东西进入你的逻辑。你能更深入地解释一下吗?我是phpSure的新手,我在下面添加了一个答案,演示了两种在我看来有意义的方法。如果行号大于100,最好是为
标记分配一个类。这样,再加上一个相应的CSS规则文件,你就可以随心所欲了,并且不让样式化的东西进入你的逻辑。你能更深入地解释一下吗?我是phpSure的新手,我在下面添加了一个答案,展示了两种在我看来有意义的可能方法。
<?php $fileHandle = fopen('productos.csv', 'r'); ?>
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="productos.css">
  </head>
  <body>
    <table>
      <tbody>
<?php while (($columns = fgetcsv($fileHandle, 1000, ';')) !== false) { ?>
        <tr>
<?php foreach ($columns as $colId => $colVal) { ?>
          <td><?=htmlspecialchars($colVal)?></td>
<?php } ?>
        </tr>
<?php } ?>
      </tbody>
    </table>
  </body>
</html>
tr td {
  background-color: white;
}
tr:nth-child(n+10) td {
  background-color: green;
}
tr:nth-child(n+10) td:nth-child(3) {
  background-color: yellow;
}
<?php $fileHandle = fopen('productos.csv', 'r'); ?>
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="productos.css">
  </head>
  <body>
    <table>
      <tbody>
<?php while (($columns = fgetcsv($fileHandle, 1000, ';')) !== false) { ?>
        <tr class="<?= (++$rowId>9)? 'high' : 'low' ?>">
<?php foreach ($columns as $colId => $colVal) { ?>
          <td class="<?= (++$colId===3)? 'yellow' : 'green' ?>"><?=htmlspecialchars($colVal)?></td>
<?php } ?>
        </tr>
<?php } ?>
      </tbody>
    </table>
  </body>
</html>
tr td {
  background-color: white;
}
tr.high td {
  background-color: green;
}
tr.high td.yellow {
  background-color: yellow;
}