我是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文件的内容如下。
等等。
在我的网页中,我得到2页输出(因为我设置了分页选项,每页显示20条记录。
$pagedResults = new Paginated($names, 20, $page);
但输出仍包含原始CSV文件中的逗号。我希望我的输出如下所示。
第一页:
等等。
第二页:
等等。
答案 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();