如何在从csv获取的HTML表中嵌入图标?

时间:2013-04-23 08:06:22

标签: php html

下面的php代码从.csv文件中提取数据并生成HTML表格。它工作正常。我想知道是否可以在html表中嵌入一些图标,例如红色或绿色点(reddot.gif,greendot.gif),与csv文件中的某些特定单词(例如:红色,绿色)相对应。

换句话说,当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);
}
?>

2 个答案:

答案 0 :(得分:2)

声明任何循环的 函数,只是在if的开头,甚至是脚本的开头或结尾:

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

这是在其他地方:

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

如果您需要更多颜色,请遵循逻辑并将它们添加到preg_replace内的两个数组中。

如果需要向图像添加属性,请在声明的函数中添加它们。

希望它适合你

答案 1 :(得分: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 :)
       }
    }