2011-11-12 11 views
4

私はfgetCsvを使用しようとしていますが、何らかの理由で最初の行だけを読み込んでいます。コードは次のとおりです。fGetCsvは最初の行だけを読み取っていますか?

$fieldseparator = ","; 
$lineseparator = "\r"; 


if(!file_exists($csvFile)) { 
    echo "<div id='error'>Cannot find uploaded file. Please try again</div>"; 
    exit; 
} 

$file = fopen($csvFile,"r"); 

if(!$file) { 
    echo "<div id='error'>Error loading CSV file</div>"; 
    exit; 
} 

$size = filesize($csvFile); 
if(!$size) { 
    echo "<div id='warning'>File is empty</div>"; 
    exit; 
} 

$query = ""; 
$content = fgetcsv($file,$size,$lineseparator); 


fclose($file); 

foreach($content as $data) { 
     $values = explode($fieldseparator,$data); 
     $query[$i] = "('".implode("','",$values)."')"; 
} 

これは1行だけを出力します。 CSVファイルは次のとおりです。

TSE-P01,1,WO47653897,RM,EcoQuiet,1 
TSE-P02,1,WO47653898,RM,EcoQuiet,1 
TSE-P03,1,WO47653899,RM,EcoQuiet,1 
TSE-P04,1,WO47653900,RM,EcoQuiet,1 
TSE-P05,1,WO47653901,RM,EcoQuiet,1 
TSE-P06,1,WO47653902,RM,EcoQuiet,1 
TSE-P07,1,WO47653903,RM,EcoQuiet,1 
TSE-P08,1,WO47653904,RM,EcoQuiet,1 

これはどうして起こっているのでしょうか? the docsから

答えて

9

fgetcsv - ファイルポインタからラインを取得し、複数の行をしたいなら、あなたは複数回それを呼び出す必要がありCSVフィールド

のために解析します。

5

この例では..また

whileループ全体のファイルを使用してコードを反復処理/すべての行を使用してW3Schoolsのhttp://www.w3schools.com/php/func_filesystem_fgetcsv.asp

$file = fopen("contacts.csv","r"); 

while(!feof($file)) 
    { 
    print_r(fgetcsv($file)); 
    } 

fclose($file); 

から「例2」であるあなたは、何かをしている場合そのように..

print_r(fgetcsv($file)); 
print_r(fgetcsv($file)); 
print_r(fgetcsv($file)); 

それは...

のみ最初の3行を出力します
関連する問題