2011-03-11 59 views
0

首先,我想说,我刚刚开始使用PHP,所以请亲切。我想要做的是从csv文件打印一张表格。第一行我想用灰色背景色加粗。下一行应与白色和绿色背景交替,文字不粗体。下面是我的尝试,但它只是产生一个表,有一个灰色背景的所有粗体文字从一个CSV文件生成一个丰富多彩的表格使用PHP

<?php 
echo "<html><body><table>\n\n"; 
$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>"; 

编辑:

我也想知道如何使用有意义的名称,使定义颜色代码更具可读性

+0

你已经给你的颜色一些可读的名字,但你没有使用它们。你可以使用define('COLOR_GREEN','#DDFFCC')来使它们更具可读性。 – 2011-03-11 18:59:29

+1

技术上甚至不需要这样做 - 如果您使用HTML颜色名称而不是十六进制,则代码仍然有效。 http://www.w3schools.com/html/html_colornames.asp – aendrew 2011-03-11 19:02:41

回答

3

要检查$颜色是否被设置为“#EEEEEE”,你需要在你if statement,类似于使用双等号(= =)到C/C++/C#。否则,你只是告诉PHP将$ color设置为“#EEEEEE”。

if ($color == "#EEEEEE"){ 
+0

Arg ....我不应该错过那个哈哈。我将颜色分配给灰色,这总是如此,因此我总是变得有大胆的灰色背景:S – Richard 2011-03-11 19:01:56

+0

+1好眼睛男人 – 2011-03-11 19:02:13

+0

如果你能告诉我如何定义颜色,你就会获胜。例如在C我会做一些像#define灰色“#EEEEEE”,这样我的代码可以更具可读性 – Richard 2011-03-11 19:06:54

0

switch语句需要在foreach中,否则颜色只会在迭代循环完成后才会改变。

<?php 
echo "<html><body><table>\n\n"; 
$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>"; 
0

您需要关闭标签:

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