1

我有一个可以正常工作的代码:

if (($handle = fopen("file.csv", "r")) !== FALSE) {
   while (($data = fgetcsv($handle, 0, "|")) !== FALSE) {
   echo $data[0].$data[1].$data[2]."<br />\n";
   }
fclose($handle);
}

但它从 file.csv 获取所有内容,我只想要最后 x 行。我尝试了切片方法等。提前感谢您的帮助。

4

1 回答 1

0

如果命令行实用程序tail在您的 上PATH,那么您可以使用以下代码段:

$x = 3;
if (($handle = popen(sprintf("tail --lines=%d file.csv", $x), "rb")) !== FALSE) {
    while (($data = fgetcsv($handle, 0, ";")) !== FALSE) {
        echo $data[0].$data[1].$data[2]."<br />\n";
    }
    fclose($handle);
}

PHP 函数fgetcsv将始终一次解析一行。

于 2020-12-07T17:07:43.313 回答