在php中创建一个CSV文件

时间:2014-04-24 02:31:11

标签: php csv

我想创建一个新的 CSV文件,其中包含一些值并存储在我的上传目录下。任何人都可以指导我如何创建CSV以及用PHP编写的代码。另外,我想要CSV文件,其中包含表单输入参数的名称和当前日期。

示例:Test_24-04-2014.csv

如果您可以建议我如何定义列标题,那也很棒。

示例:

----------------------------------------
Sr. No           Name              Invt.
----------------------------------------

2 个答案:

答案 0 :(得分:1)

以此为例,首先,您需要一个表格:

样本表格:

<!-- HTML -->
<form method="POST" action="processes_the_form.php">
    Sr No.: <input type="text" name="srno" /><br/>
    Name: <input type="text" name="name" /><br/>
    Invt.: <input type="text" name="invt" /><br/>
    <input type="submit" name="submit" value="Add to CSV" />
</form>

然后在PHP中处理它:

<?php
// set delimitter (tab or comma)
$delimitter = chr(9); // this is a tab
$newline = "\r\n"; // CRLF or whatever you want

// handle form submit
if(isset($_POST['submit'])) {
    // gather values
    $srno = $_POST['srno'];
    $name = $_POST['name'];
    $invt = $_POST['invt'];

    // check for the csv file
    $directory = ''; // sample: path/to/csv/
    $prefix = 'Test_';
    $date = date('d-m-Y');
    $file_path = $directory . $prefix . $date . '.csv';

    // initial creation
    if(!file_exists($file_path)) {
        $file = fopen($file_path, 'w');
        // add the headers
        $headers = array('SrNo', 'Name', 'Invt');
        fputcsv($file, $headers, $delimitter);
        fclose($file);
    }

    $formatted_data = array($srno, $name, $invt);
    // put them inside the file and append on end
    $file = fopen($file_path, 'a');
    fputcsv($file, $formatted_data, $delimitter);
    fclose($file);
}

?>
  

注意:您可能需要设置对该PHP的权限才能在该特定路径上创建/写入

答案 1 :(得分:0)

要在CSV中定义列标题,您需要在包含列标题的开头添加一行。例如:

"First name", "Family name", "Age"
"John", "Doe", "21"
"Jack", "Smith, "34"

要从PHP生成CSV文件,您可以使用fputcsv function