在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中创建一个表吗?