【发布时间】:2014-07-07 19:51:28
【问题描述】:
我正在使用fgetcsv() 读取这种格式的 csv 文件...
Make, Model, Origin, Color, Miles, Options
Chevy, Tahoe, Delaware, Black, 10000, LX
Ford, F150, Texas, Red, 5000, S
Chevy, Corvette, Utah, Red, 12000, SE
Mazda, Miata, Florida, Blue, 90000, LX
...然后生成一个 HTML 表格。虽然我可以将每个数据值放入一个单独的单元格中,但我想将模型的 color 和 options 值列为 HTML 数据属性。 所以我当前的输出看起来像这样:
<table>
<tr>
<td>Chevy</td>
<td>Tahoe</td>
<td>Delaware</td>
<td>Black</td>
<td>10000</td>
<td>LX</td>
</tr>
<tr>
<td>Ford</td>
<td>F150</td>
<td>Texas</td>
<td>Red</td>
<td>5000</td>
<td>S</td>
</tr>
</table>
当我希望它看起来像这样时:
<table>
<tr data-color="black" data-options="LX">
<td>Chevy</td>
<td>Tahoe</td>
<td>Delaware</td>
<td>10000</td>
</tr>
<tr data-color="red" data-options="s">
<td>Ford</td>
<td>F150</td>
<td>Texas</td>
<td>5000</td>
</tr>
</table>
但是,我现在使用的 PHP 仅提供“颜色”的数据属性值(来自标签行)作为每个 <tr> 的属性。例如,
<tr data-color="Color" data-options="Options">
<td>Ford</td>
<td>F150</td>
<td>Texas</td>
<td>5000</td>
</tr>
是否有人建议从数组中获取适当的值作为每行的数据属性?这是我当前的 PHP:
<?php
$handle = fopen("cars.csv", "r");
$data = fgetcsv($handle, 1000, ",");
$color = $data[3];
$options = $data[5];
echo('<table>');
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
//generate HTML
echo('<tr data-color="' . $color . '" data-options="' . $options . '">');
foreach ($data as $index=>$val) {
echo('<td>');
echo htmlentities($val, ENT_QUOTES);
echo('</td>');
}
echo('</tr>');
}
echo("</table>");
fclose($handle);
?>
【问题讨论】:
-
您在循环外设置
$color,但从不更新循环内的值。您可能只需在循环内将$color更改为$data[3]就可以了。 -
果然,解决了它...感谢输入。如果您添加为答案,我会接受。