我有2个问题/问题,我现在想弄清楚。我有一个HTML表单,表单内部是表格。我想要做的是包括我所拥有的表头,并将其作为第一行写入csv文件。我似乎无法想出那一个。这就是我的html表单。
<html>
<form>
<table>
<h1> Shorts </h1>
<thead>
<tr>
<th> Header 1 </th>
<th> Header 2 </th>
<th> Header 3 </th>
<th> Header 4 </th>
<th> Header 5 </th>
</tr>
</thead>
//form input here....
</table>
</form>
</html>
这是我有的PHP脚本
<?php
function myfputcsv($handle, $array, $delimiter = ',', $enclosure = '"', $eol = "\n") {
$return = fputcsv($handle, $array, $delimiter, $enclosure);
if($return !== FALSE && "\n" != $eol && 0 === fseek($handle, -1, SEEK_CUR)) {
fwrite($handle, $eol);
}
return $return;
}
if(isset($_POST['mydrivers'])) {
$header=array("Driver", "Date", "Customer #", "Invoice #", "Product Description", "Size", "CS", "Btls", "CHK Itls");
$data=array();
$rows = 0;
$fp = fopen('driver' . date('m-d-y'). ".csv", 'a');
while ( ! feof($fp) )
{
$stuff = fgets($fp);
if ($stuff) $rows++;
}
fseek($fp, 0);
//myfputcsv($handle, $header);
fputcsv($fp, $header);
foreach (array_slice($_POST,0,count($_POST)-1) as $key => $value) {
//$header[]=$key;
$data[]=$value;
}
myfputcsv($fp, $data);
fclose($fp);
echo "data added";
}
?>
当我打开csv文件时,唯一的信息就是输入数据。如何在第一行中包含所有<th>
元素?
我的第二个问题是如何将此文件保存到其他位置?该文件将被命名为'filename'. date('m-d-y'). ".csv"
,并且该位置可以说我希望它保存在我的桌面上,我会创建一个带有桌面路径加上文件名变量的变量,并在使用fopen()时调用吗?我没有将其作为附件下载的原因是因为数据将不断添加到文件中。
答案 0 :(得分:0)
由于您的标题是硬编码的,我建议您将表单中的标题硬编码为隐藏变量,如下所示:
$_POST['headerN']
然后只需通过N
阅读它们,其中$headers = array("header 1", "header 2", "header 3", "header 4", "header 5");
fputcsv($handle, $headers);
为1-5。或者,您可以简单地在服务器端对数组进行硬编码。
或者,您可以简单地对数组中的标头服务器端进行硬编码,然后在循环数据之前将其写入CSV文件:
{{1}}