如何跳过第一行并从PHP中的csv读取最多五行
您好,
我有以下代码,其中我想在csv中跳过第一行,即列的标题,并读取五行csv文件。
当前代码跳过第一行但显示所有记录。
我怎样才能做到这一点?
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
set_time_limit(0);
define('CSV_PATH', '/var/www/Products_upload_12499/'); // specify CSV file path
$csv_file = CSV_PATH . "skipfirstrow.csv"; // Name of your CSV file
$csvfile = fopen($csv_file, 'r');
$counter = 1;
while ($data = fgetcsv($csvfile))
{
if($counter==1) {
$counter++;
continue;
} }
$days = trim($data[0]);
echo "==>> " . $days."\n";
if ($counter >= 6) {
exit();
}
}
?>
答案 0 :(得分:1)
您可以创建一个if else
条件,只输出您想要的行,并在您获得所需的所有行时打破while
循环:
$row = 0;
while ($data = fgetcsv($csvfile))
{
$row++;//starts off with $row = 1
if (($row>1)&&($row<6))//rows 2,3,4,5
{
foreach ($data as $cell)
{
echo "| {$cell} |";
}
echo "<br>";
}
else if ($row>=6)
{
break;
}
}
您可以将echo "| {$cell} |";
代码替换为您要输出的代码。
如果这对您有用,请告诉我。
答案 1 :(得分:0)
只是跳过第一行不等于分配!=
,让我知道它是否有用
$counter = 1;
while ($data = fgetcsv($csvfile))
{
if($counter !=1) {
$days = trim($data[0]);
echo "==>> " . $days."\n";
if($counter >= 6)
break;
}
$counter++;
}
答案 2 :(得分:0)
另一个实现此目的的代码
fgets
用于跳过行以避免过多的csv解析。
if (($f = fopen('test.csv', 'r')) === false)
throw new Exception('File not found');
$skip = 1;
$length = 5;
for ($i = 1; $i < $skip; $i++) fgets($f); // skip first $skip lines
for ($i = $skip; $i < $skip + $length; $i++) {
$row = fgetcsv($f);
echo implode(', ', $row)."<br/>\n";
}