PHP - 在页面的第一页中显示两次CSV标题

时间:2013-10-01 18:32:09

标签: php

我是PHP的新手,并试图在我的网页中以表格格式显示带有分页选项的CSV数据。这是我到目前为止的代码。

<?php
$names = file('demo.csv');
$page = $_GET['page'];
$pagedResults = new Paginated($names, 20, $page);
echo "<table border='2' bgcolor='#fbd998' style='float:center; margin:20'>";
//when $row is false loop terminates
while ( $row = $pagedResults->fetchPagedRow())
{
    echo "<tr><td>";
    $row1 = str_replace( ',', "</td><td>", $row );
    echo $row1;
    echo "</td></tr>";
}
echo "</table>";
//important to set the strategy to be used before a call to fetchPagedNavigation
$pagedResults->setLayout(new DoubleBarLayout());
echo $pagedResults->fetchPagedNavigation();
?>

问题是,除了第一页之外,我无法显示CSV标题信息。为了避免这种情况,我使用处理程序从CSV文件中提取第一行(其中包含标题信息)。我在while循环之前添加了下面的代码。

if (($data = fgetcsv($handle, 1000, ',')) !== FALSE)
{
}
echo "<table border='2' bgcolor='#fbd998' style='float:center; margin:20'>";
echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>';

这个策略似乎在所有页面都正常工作,除了在第一页中,我有两次CSV标题。例如,我当前的第一页如下所示。

  • Column1 Column2 Column3
  • Column1 Column2 Column3


  • 我的其他数据


有人可以指导我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

问题是csv不区分标题和实际数据,因此第一页从文件的第一行开始并输出。您必须从行nr开始读取数据。 2,或停止在页面nr显示标题。 1。

尝试更改

echo "<table border='2' bgcolor='#fbd998' style='float:center; margin:20'>";
echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>';

到此:

if ($page != 1){
  echo "<table border='2' bgcolor='#fbd998' style='float:center; margin:20'>";
  echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>';
}