0

我想从一个表单框中存储基本数据,并且我已经创建了这个 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 
    }
}
4

3 回答 3

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);
于 2013-05-24T19:06:35.973 回答
3

您应该查看fputcsv。这会将 CSV 添加到您的文件并处理字段和行尾。

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

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

于 2013-05-24T18:53:40.533 回答
0

这部分的行为不会像您期望的那样,在单引号内时不会评估变量:

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

您将需要使用双引号:

$cvsData ="\"$name\",\"$date\"".PHP_EOL; 
于 2013-05-24T18:47:12.290 回答