通过php将列名添加到csv文件

时间:2016-03-29 11:23:20

标签: 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;

2 个答案:

答案 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);    
}

如果您的文件太大而无法存储在内存中,那么您需要逐行重写整个文件,然后删除旧文件:

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");
}

答案 1 :(得分:-1)

列名只是csv的第一行。所以你只需检查文件是否存在(并且非空)。如果它不存在,请使用列名作为第一行创建它。

相关问题