0

以下の php コードは、.csv ファイルからデータを抽出し、HTML テーブルを生成します。それは正常に動作します。csvファイルの特定の単語(例: red 、 green )に対応する赤または緑のドット( reddot.gif 、 greendot.gif )などのアイコンをhtmlテーブルに埋め込むことができるかどうか疑問に思います。

つまり、csv ファイルで特定の列 (例: 列 3) に赤または緑が表示される場合、生成された html ファイルには reddot.gif または greendot.gif が表示されます。

前もって感謝します。マット

<?php
$row = 1;
if (($handle = fopen("example.csv", "r")) !== FALSE) {
 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    if ($row == 1) {
        echo '<tr>';
    }else{
        echo '<tr>';
    }

    for ($c=0; $c < $num; $c++) {

        if(empty($data[$c])) {
           $value = "&nbsp;";
        }else{
           $value = $data[$c];
        }
        if ($row == 1) {
// ------------- head row --------
            echo '<td style="border-top: 1px solid rgb(111,180,224); border-left: 1px solid rgb(111,180,224); border-bottom: 1px solid rgb(111,180,224);"  align="left" bgcolor="#0066cc" height="36" valign="middle" ><b><font color="#ffffff" size="2">&nbsp;&nbsp;'.$value.'&nbsp;&nbsp;</font></b></td>';
        }else{

// ------------- Generic row -------
            echo '<td style=" border-bottom: 1px solid rgb(111,180,224);" sdval="9" sdnum="1040;" align="left" bgcolor="#ffffff" height="25"  valign="middle"><font color="#000000" size="2">&nbsp;&nbsp;'.$value.'&nbsp;&nbsp;</font></td>';
        }
    }

    if ($row == 1) {
        echo '</tr>';
    }else{
        echo '</tr>';
    }
    $row++;
}

echo '</tbody></table>';
echo '</center>';   
fclose($handle);
}
?>
4

2 に答える 2

2

この関数は、ループの外側、if の開始時、またはスクリプトの開始時または終了時に宣言します。

function img($img){ return "<img src='{$img}dot.gif'/>";}

これはelseに入ります:

$value = preg_replace(array('/red/i', '/green/i'), array(img('red'), img('green')), $data[$c]);

さらに色が必要な場合は、ロジックに従って preg_replace 内の 2 つの配列に追加します。

画像に属性を追加する必要がある場合は、宣言された関数に追加します。

それがあなたのために働くことを願っています

于 2013-04-23T08:49:59.423 に答える
0

これを試してみてください。

    if(empty($data[$c])) {
       $value = "&nbsp;";
    }else{
       $value = $data[$c];
       switch(strtolower(trim($value))){
       case 'green': $value = '<img src="greendot.gif" '
                             .'alt="green" height="32" width="32">';
                             break;
       case 'red':   $value = '<img src="reddot.gif" '
                             .'alt="red" height="32" width="32">';
                             break;
       // you can add other cases here like blue, triangle etc :)
       }
    }
于 2013-04-23T08:14:09.337 に答える