我一直在努力將csv文件導入到mysql數據庫中。問題是我的客戶端已經有一些格式不正確的文件。行結束於43,但文件下降到65078!如何使用fgetcsv省略空白行
導入時,腳本需要永久使用。我能做些什麼來確保只有0到44行被導入?這是我使用的代碼。
<table>
<?php
//fgetcsv($handle, 1024, delimiter)
$file = fopen("prices.csv", "r");
$row = 0;
while($csv_line = fgetcsv($file,1024)) {
if($row == 4){
echo "How many headers do we have: ".count($csv_line)."<tr>";
foreach($csv_line as $header){
if($header !== NULL){
print "<td>$header</td>";
}
}
echo "</tr>";
}
if($row > 6) {
echo '<tr>';
for ($i = 0, $j = count($csv_line); $i < $j; $i++) {
echo '<td>'.$csv_line[$i].'</td>';
}
echo "</tr>\n";
} else {
$row++;
}
}
?>
</table>
我想我可以做到這一點,但文件仍然不會被解析,這仍然會消耗太多時間?因爲爲了知道該行是空的,它仍然會一直走到文件的末尾... – Chiko
您的評論給了我一個更好的解決方案的想法: 這裏[鏈接](http:// php。 net/manual/en/function.fgetcsv.php)出現這個「CSV文件中的空白行將作爲包含單個空字段的數組返回」,所以這可能有助於: while(($ csv_line = fgetcsv( $ file,1024))&& $ csv_line [0]){' 只讀,直到找到一個空行(我會更新回覆) – leticia
非常感謝。有用!!! – Chiko