php保存到csv文件

时间:2013-05-24 18:44:32

标签: php post csv

我想要从单个表单框中存储基本数据,并且我已经创建了这个php代码库,但它似乎不起作用。有人可以看一眼,看看有什么突出的原因,这是不行的。 编辑:csv文件永远不会使用新数据进行更新

if (isset($_POST["submit"])) 
{ 
    $name = $_POST["name"]; 
    date_default_timezone_set('America/New_York');
    $date = date('Y-m-d H:i:s');

    if (empty($name)) 
    { 
        echo "ERROR MESSAGE"; 
        die; 
    } 
    $cvsData ='"$name","$date"'.PHP_EOL; 
    $cvsData .= "\"$name\",\"$date\"".PHP_EOL; 
    $fp = fopen("emailAddressses.csv", "a");

    if ($fp) 
    { 
        fwrite($fp,$cvsData); // Write information to the file 
        fclose($fp); // Close the file 
    }
}

3 个答案:

答案 0 :(得分:7)

在php中使用更好的方式:fputcsv

否则你需要做很多错误处理才能实现。

$list = array (
    array('First Name', 'Last Name', 'Age'),
    array('Angelina ', 'Jolie', '37'),
    array('Tom', 'Cruise', '50')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);

答案 1 :(得分:3)

你应该研究fputcsv。这会将CSV添加到您的文件中并处理字段和行结束。

fputcsv($fp,array(array($name,$date)));

如果需要,您还可以指定分隔符等。

答案 2 :(得分:0)

此部分的行为与预期不符,单引号内部不会评估变量:

$cvsData ='"$name","$date"'.PHP_EOL;

您需要使用双引号:

$cvsData ="\"$name\",\"$date\"".PHP_EOL;