在php中创建一个CSV文件[关闭]

Posted

技术标签:

【中文标题】在php中创建一个CSV文件[关闭]【英文标题】:Create a CSV file in php [closed] 【发布时间】:2014-06-09 03:20:43 【问题描述】:

我想创建一个新的 CSV 文件,其中包含一些值并存储在我的上传目录下。谁能指导我如何创建 CSV 以及用 php 编写哪些代码。我还想要带有表单输入参数名称和当前日期的 CSV 文件。

例如:Test_24-04-2014.csv

如果您能告诉我如何定义列标题,那就太好了。

例子:

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

【问题讨论】:

一个简单的谷歌搜索会返回很多结果 php 有几个内置的 csv 函数 【参考方案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 的权限才能在该特定路径上创建/写入

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

以上是关于在php中创建一个CSV文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ruby 中创建 CSV 文件的某些列的副本,其中一列中有不同的数据?

从单个 csv 文件在 Hadoop Hive 中创建星型模式(维度和事实表)

我可以从带有标题的csv文件中自动在PostgreSQL中创建一个表吗?

在 Google BigQuery 中创建 CSV 表的困难

从 csv-File 在 networkx 中创建边

当我们从 s3 中的 csv 文件读取数据并在 aws athena 中创建表时如何跳过标题。