2011-03-11 3 views
0

먼저 PHP로 시작한다고 말씀 드리고자합니다. 친절하게 대해주십시오. 내가 뭘 하려는지 CSV 파일에서 테이블을 인쇄하는 것입니다. 첫 번째 행은 회색 배경색으로 굵게 표시하고 싶습니다. 다음 행은 굵은 텍스트가 아닌 흰색과 녹색 배경으로 번갈아 가야합니다. 다음은 내 시도이지만, 그냥 회색 배경이 모두 굵은 텍스트로 테이블을 생성CSV 파일에서 다채로운 표 생성하기

<?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')을 사용하면 더 쉽게 읽을 수 있습니다. –

+1

기술적으로도이를 수행 할 필요가 없습니다. 16 진수 대신 HTML 색상 이름을 사용하면 코드가 여전히 작동합니다. http://www.w3schools.com/html/html_colornames.asp – aendrew

답변

3

는 $ 색상이 "#EEEEEE"에, 당신은 당신의 if statement 비슷한에 이중 등호 (==)를 사용할 필요가 설정되어 있는지 여부를 확인하려면 C/C++/C#. 그렇지 않으면 PHP에 $ color를 "#EEEEEE"라고 설정하는 것입니다.

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

Arg ... 나는 그 롤을 놓쳐서는 안된다. 나는 항상 사실 인 회색에 색상을 할당하고 있으므로 회색 배경을 가진 항상 굵게 표시됩니다. S – Richard

+0

+1 좋은 눈 사람 –

+0

색상을 정의하는 방법을 말해 줄 수 있으면 .. C에서 예를 들어 #define grey "#EEEEEE"와 같은 일을하므로 코드가 더 읽기 쉬울 수 있습니다. – Richard

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