将离线html表单数据存储在csv文件中

时间:2012-02-14 17:10:02

标签: php html forms csv fputcsv

我正在寻找一个简单的解决方案,希望是一个简单的问题。我想让笔记本电脑设置一个离线html文件,其中包含一个非常简短的表格,可以提供csv文件。我一直在关注fputcsv()函数来做这件事,但我不是最有才华的程序员。如果我有一个看起来像这样的简单形式:

<?php
    if(isset($_POST['submit']))
    {
        $myfile = fopen('file.csv', 'w');
        fputcsv($myfile,
            array($_POST['first-name'], $_POST['last-name'], $_POST['email']));
        fclose($myfile);
    }
?>

<article role="main">

    <header role="banner">

        <h1>Email Updates</h1> 

    </header> 

    <section>

    <form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF'];?>">

        <input type="text" id="first-name" maxlength="100" autocorrect placeholder="First name" />
        <input type="text" id="last-name" maxlength="100" autocorrect placeholder="Last name" />
        <input type="text" id="email" maxlength="100" autocorrect placeholder="Email address" />

        <button type="submit" id="submit" class="oneup">Submit</button>

    </form>

    </section> 

</article>

我需要什么样的代码才能提供简单的csv文件?

3 个答案:

答案 0 :(得分:1)

如果(如果)提交表单(正确),请执行以下操作:

if( $fp = fopen('file.csv', 'w') )
{
  fputcsv($fp, $_POST);
}
fclose($fp);

答案 1 :(得分:0)

提交此表单时,它将填充$ _POST数组。

因此,您应该添加一些处理提交值的PHP代码。

例如:

<?php
    if(isset($_POST['submit']))
    {
        $myfile = fopen('file.csv', 'w');
        fputcsv($myfile,
            array($_POST['first-name'], $_POST['last-name'], $_POST['email']));
        fclose($myfile);
    }
?>

答案 2 :(得分:0)

与djot的答案类似,我会用这个:

if( $fp = fopen('file.csv', 'w') ){
    fputcsv($fp, print_r($_POST, true));
}
fclose($fp);

请注意带有true标志的print_r,因为这使它更具人性化。

如果你真的想把它写成CSV,只需使用:

$data = implode(',' $_POST);
if( $fp = fopen('file.csv', 'w') ){
    fputcsv($fp, $data);
}
fclose($fp);