2011-03-11 60 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";