2016-03-29 103 views
0

私はPHPが初めてです。私は人が登録するたびにCSVファイルにデータを追加しようとしています。私は質問したい、列名を追加する方法はありますか?PHPでcsvファイルにカラム名を追加

これは私のPHPコードです:

$handle = fopen("data.csv", 'a'); 

fwrite($handle, $doi. ", " .$per_add. ", " .$pre_add."\n"); 

fclose($handle); 

header("Location: thankyou.html"); 
exit; 
+0

カラム名は1回だけ追加されます。私はその質問を誤解した。 – apokryfos

答えて

-1

列名は、CSVファイルの最初の一行だけです。ファイルが存在するかどうかをチェックするだけです(空ではありません)。存在しない場合は、列名を最初の行として作成します。

+0

これはあまりにも悪いです。私は釣り人に魚を与える代わりに魚を習うようにしていました。 –

0

私のコメントで指摘したように。ヘッダーを追加すると、これがCSVファイルの先頭に追加されます。これは一度だけ行う必要があります(ファイルが存在するかどうかをチェックし、ヘッダーを最初に書き込まない場合)。しかし、あなたはすでにあなたがあなたにヘッダを付加したいファイルは、以下のいずれかを行うことができます持っている場合:

あなたのファイルはあなたがこれを行うことができます小さい場合:ファイルがに大きすぎる場合

function prependHeader($headerDataArray) { 
    $currentData = file_get_contents("data.csv");    
    $handle = fopen("data.csv", 'w'); //Truncate it 
    fputcsv($handle, $headerDataArray); 
    fwrite($handle, $currentData); 
    fclose($handle);  
} 

をメモリ内に保存する場合は、基本的にファイル全体を1行ずつ書き換えてから古いファイルを削除する必要があります:

function prependHeader($headerDataArray) { 
    $readHandle = fopen("data.csv");    
    $writeHandle = fopen("newData.csv", 'w'); //Truncate it 
    fputcsv($writeHandle, $headerDataArray); 
    while (($line = fgetcsv($readHandle))) { 
     fputcsv($writeHandle,$line); 
    } 
    fclose($readHandle);  
    fclose($writeHandle);  
    unlink("data.csv"); 
    rename("newData.csv", "data.csv"); 
} 
関連する問題