0

我正在处理一个 php 代码,它读取同一文件夹中的 .csv 文件并在 html 中打印一个表格。由于文件包含很多行,我想将表限制为特定的行数(例如 50)。我真的不知道该怎么做,任何人都可以帮助像我这样的新手吗?

 <?php

 $row = 1;
 if (($handle = fopen("myfile.csv", "r")) !== FALSE) {

echo '<table border="1">';

while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
    if ($row == 1) {
        echo '<thead><tr>';
    }else{
        echo '<tr>';
    }

    for ($c=0; $c < $num; $c++) {
        if(empty($data[$c])) {
           $value = "&nbsp;";
        }else{
           $value = $data[$c];
        }
        if ($row == 1) {
            echo '<th>'.$value.'</th>';
        }else{
            echo '<td>'.$value.'</td>';
        }
    }

    if ($row == 1) {
        echo '</tr></thead><tbody>';
    }else{
        echo '</tr>';
    }
    $row++;
}

echo '</tbody></table>';
fclose($handle);
 }
 ?>
4

2 回答 2

1

您要做的是传入一个 GET 参数,例如 start,然后使用它来设置 for 循环的起始编号

for ($c=0; $c < $num; $c++) {

然后变成类似

for ($c=$_GET['start']; $c < $_GET['start']+50 && $c < $num; $c++) {

然后在页面底部添加链接,例如

<a href="<?=$_SERVER['PHP_SELF']?>?start=<?=$_GET['start']-50 ?>">"><< Prev</a>
<a href="<?=$_SERVER['PHP_SELF']?>?start=<?=$_GET['start']+50 ?>">">Next >></a>

显然这不是一个健壮/安全的解决方案,您需要添加检查以确保起始变量是一个数字,并添加边界检查。

于 2013-01-03T18:56:27.107 回答
1

您可以使用$row' 值来限制它。

代码看起来像这样:

if ($row == 50):
    break; //exits while loop
endif;
于 2013-01-03T18:58:36.783 回答