2016-05-24 11 views
3

Как пропустить первую строку и прочитать, до пяти строк из CSV в PHPКак пропустить первую строку и прочитать, до пяти строк из CSV в PHP

Здравствуйте,

У меня следующий код, в котором я хочу пропустите первую строку в 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

Используйте [PHPExcel] (https://github.com/PHPOffice/PHPExcel) библиотека – narasimharaosp

+0

Я работаю на Ubuntu, так что я не думаю, что так Excel работает в Ubuntu. Поэтому я использую файлы csv – Nikita

+0

Вам нужны строки 2,3,4,5 правильно? – Webeng

ответ

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} |"; кода как вам нравится код для вывода.

Сообщите мне, если это сработало для вас.

0

просто пропустить первую строку, а не равным правопреемника !=, дайте мне знать, она работает

$counter = 1; 
while ($data = fgetcsv($csvfile)) 
{ 
    if($counter !=1) { 
     $days = trim($data[0]); 
     echo "==>> " . $days."\n"; 
     if($counter >= 6) 
     break; 
    } 
    $counter++; 
} 
+1

oh да Спасибо @vp_art –

+0

Nice catch, @Nikita :) Но неуравновешенный '{}' здесь сейчас. –

+0

Нет его не несбалансированного .. Все '{}' правильно закрыты – Nikita

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"; 
}