私は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>
私はそれを行うことができると思うが、ファイルはまだ解析されず、それはまだあまりにも多くの時間を消費するだろうか?行が空であることをPHPが知るためには、ファイルの終わりまでまだ行っていたでしょう... – Chiko
あなたのコメントは私により良い解決策を提案します: ここで[リンク](http:// php。 CSVファイル内の空白行は1つのヌルフィールドを含む配列として返されるので、おそらくこれが役に立ちます: 'while(($ csv_line = fgetcsv(net/manual/en/function.fgetcsv.php) $$$))&& $ csv_line [0]){' 空行を見つけるまで読み取り専用です(私は返信を更新します) – leticia
ありがとうございます。できます!!! – Chiko