下面的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 = " ";
}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"> '.$value.' </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"> '.$value.' </font></td>';
}
}
if ($row == 1) {
echo '</tr>';
}else{
echo '</tr>';
}
$row++;
}
echo '</tbody></table>';
echo '</center>';
fclose($handle);
}
?>
答案 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 = " ";
}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 :)
}
}