在php中循环打印csv内容的问题
问题描述:
这段代码只是关于作品:在php中循环打印csv内容的问题
我可以吐出所有的数组数据,但我想要的是能够按列打印出数据列。
function processCSV()
{
global $uploadFile;
$loadLocationCsvUrl = fopen($uploadFile,"r");
if ($loadLocationCsvUrl <> false)
{
while ($locationFile = fgetcsv($loadLocationCsvUrl, ','))
{
$csvCols = array(
'country' => $locationFile[9],
'open' => $locationFile[4],
'officeid' => $locationFile[2]
);
foreach($csvCols as $locationData)
{
if ($locationData == '') {
echo "<p>" . "blank" . "</p>";
}
else
{
echo "<p>" . $locationData . "</p>";
}
}
}
}
fclose($loadLocationCsvUrl);
}
processCSV();
我想这会工作:
echo "<p>" . $locationData['country'] . "</p>";
但如果我这样做,我看到一个格式错误的页面,像下面的(上传截图)。
http://www.imageupload.org/?d=9C676F041
我设法用不同的实施工作了这一点,我切换到一个二维数组,表渲染从未有人获得数据的问题。
<?php
function processCSV()
{
global $uploadFile;
$loadLocationCsvUrl = fopen($uploadFile,"r");
if ($loadLocationCsvUrl <> false)
{
while ($locationFile = fgetcsv($loadLocationCsvUrl, ','))
{
$officeId = $locationFile[2];
$country = $locationFile[9];
$open = $locationFile[4];
echo "<table>";
echo "<tr>";
echo "<td>$officeId</td>";
echo "<td>$country</td>";
echo "<td>$open</td>";
echo "</tr>";
echo "</table>";
}
}
fclose($loadLocationCsvUrl);
}
processCSV();
?>
如果我浪费了任何时间,谢谢您的回复和抱歉。
答
这听起来像你想显示输出科拉姆明智的。在这种情况下,<table>
是预期的标记。但我会先简化你的代码:
// read in
$csv = array_map("str_getcsv", file($uploadFile));
// output
print "<table>";
foreach ($csv as $row) {
print <<<HTML
<tr>
<td>$row[9]</td>
<td>$row[4]</td>
<td>$row[2]</td>
</tr>
HTML;
}
如果你不使用列的关联数组键,那么创建它们没有意义。
答
<p>是块元素,因此每个连续的一个前进到通过设计一个新行。你可以设置'display:inline;'在你的CSS,如果你想,但为什么使用<p>?
您可以使用内联元素,如<范围>或使用'float:left'使块元素按您的需要行为。
这是假设的数据是不恰当的列表。
答
做出那么父表TR和TD,
现在,这个TD内,一张桌子和打印TD-TRS的列
然后关闭该表
打印新的TD在父
重复一列TRS
例子的表....
<table><tr><td>
<table>
<tr><td>col1stuff1</td></tr>
<tr><td>col1stuff2</td><tr>
<tr><td>col1stuff3</td><tr>
</table>
</td><td>
<table>
<tr><td>col2stuff1</td></tr>
<tr><td>col2stuff2</td><tr>
<tr><td>col2stuff3</td><tr>
</table>
</td><td>
<table>
<tr><td>col3stuff1</td></tr>
<tr><td>col3stuff2</td><tr>
<tr><td>col3stuff3</td><tr>
</table>
</td></tr></table>
你在和谁说话? – 2011-05-13 12:22:44
旧的调试和反复试验(以及回声)发生了什么。 *.com不是调试器! – 2011-05-13 12:25:25
@ user752336您的图片已损坏。你能直接上传到SO吗? – JohnP 2011-05-13 12:25:38