0

まず、私はPHPを始めたばかりなので、親切にしてください。私がやろうとしているのは、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>";

編集:

コードを読みやすくするために意味のある名前で色を定義する方法も知りたいです

4

3 に答える 3

3

$color が "#EEEEEE" に設定されているかどうかを確認するには、C/C++/C# と同様に、 if ステートメントで二重等号 (==) を使用する必要があります。それ以外の場合は、PHP に $color を "#EEEEEE" に設定するように指示しているだけです。

if ($color == "#EEEEEE"){ 
于 2011-03-11T18:59:27.150 に答える
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>";
于 2011-03-11T18:56:54.773 に答える
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";
于 2011-03-11T18:57:54.840 に答える