2012-01-07 6 views
-1

私は広告主のダブルクリックからcsvレポートをダウンロードしています。私のクライアントは、csvをデータベーステーブルに保存する必要があります。 csvをデータベースに保存する前に、一番下の総行と一番下の行を削除する必要があります。私はcsvファイルから指定する行を削除することができるPHPの関数はありますか?条件付きでPHPを使用してCSVファイルから行を削除する

+0

は、あなたがどのような方法あなたはそこだと思います。

あなたは

unset($data[0]); and unset($data[1]); 

はその後の行をループしforeach()機能を使用して、データベースに挿入することができ、上からいくつかの行を削除するにはあなたの質問をより具体的にすることができますか? – davogotland

+0

[PHPでX行からY行にファイルを開くにはどうすればよいですか?](http://stackoverflow.com/questions/514673/how-do-i-open-a-file-from-line- x-to-line-y-in-php) – Gordon

+0

[PHP読み込みCSVと日付によるフィルタリング]の可能な複製(http://stackoverflow.com/questions/2127775/php-read-csv-and-filter-by-日付) – Gordon

答えて

0

特定の機能はありませんが、それを達成する方法はいくつかあります。

一度にメモリ内のファイル全体を保持するのに十分なRAMを持っている場合は、あなたが持つ配列にファイルを変換できます。一番下に合計を取り除くために、そして、

$data=explode("\n",file_get_contents("path/to/csv_file"); 

は、することができます最後の行を次のように設定してください:

unset($data[sizeof($data)-1); 

この方法では、配列内の各行に番号が付けられていますが、0から始まるということがあります。 "sizeof"は行数になりますが、ゼロでカウントを開始してからはあまりにも多くなります。

foreach($data as $line){ 
/// parse your $line 
/// Insert row into database 
} 
+0

そして、fgetcsv()に言及していない、またはファイルが大きすぎてメモリに余裕がない –

関連する問題