php以分页格式显示csv文件

时间:2013-09-30 21:33:20

标签: php

我是PHP新手,我有一个CSV文件,显示在我的网页上。我希望CSV文件与分页选项一起显示,以便网页看起来不错。这是我到目前为止的代码。

<?php
$names = file('demo.csv');
$page = $_GET['page'];
//constructor takes three parameters
//1. array to be paged
//2. number of results per page (optional parameter. Default is 10)
//3. the current page (optional parameter. Default  is 1)
$pagedResults = new Paginated($names, 20, $page);

echo "<ul>";

while($row = $pagedResults->fetchPagedRow()) {  
//when $row is false loop terminates
    echo "<li>{$row}</li>";
}

echo "</ul>";

//important to set the strategy to be used before a call to fetchPagedNavigation
$pagedResults->setLayout(new DoubleBarLayout());
echo $pagedResults->fetchPagedNavigation();
?>

但是,CSV文件会在屏幕中显示逗号。让我们考虑下面的例子。假设我的csv文件中有40条记录。 CSV文件的内容如下。

  • 作者1,NAME1,NAME2,电子邮件
  • 1,约翰,史密斯和John.Smith @ gmail.com
  • 2,杰克,吉布斯,Jack.gibbs @ gmail.com
  • 3,麦克,戴尔,Mike.dell @ gmail.com

等等。

在我的网页中,我得到2页输出(因为我设置了分页选项,每页显示20条记录。

$pagedResults = new Paginated($names, 20, $page);

但输出仍包含原始CSV文件中的逗号。我希望我的输出如下所示。

第一页:

  • 作者1姓名1姓名2电子邮件
  • 1 John Smith john.smith@gmail.com

等等。

第二页:

  • 作者1姓名1姓名2电子邮件

等等。

1 个答案:

答案 0 :(得分:1)

这是因为你将行拉成一行,但没有解析该行并干净地输出它。

最简单的解决方案是解析它然后以div分隔输出它,每行包裹在div中。然后使用CSS使整个事情变得漂亮。

像这样:

<?php
$names = file('demo.csv');
$page = $_GET['page'];

/*
  Constructor takes three parameters:
    1. array to be paged
    2. number of results per page (optional parameter. Default is 10)
    3. the current page (optional parameter. Default  is 1)
*/
$pagedResults = new Paginated($names, 20, $page);

echo "<div class='CSVtable'>";

while($row = $pagedResults->fetchPagedRow()) {
    $data = str_getcsv($row);
    $dataRow = implode("</div><div class='csvCol'>", $data);
    echo "<div class='csvRow'><div class='csvCol'>{$dataRow}</div>";
}

echo "</div>";

//important to set the strategy to be used before a call to fetchPagedNavigation
$pagedResults->setLayout(new DoubleBarLayout());
echo $pagedResults->fetchPagedNavigation();