2

我是 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,姓名1,姓名2,电子邮件
  • 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@gmail.com

等等。

第二页:

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

等等。

4

1 回答 1

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();
于 2013-09-30T21:44:57.693 回答