Php fput csv未添加第二行
有人能看出这个代码有什么问题吗$输出是一个多维数组,所以我将其展平,然后将键和值拆分为单独的数组。我已经对$headers和$answers进行了var_转储,但是由于某种原因,Php fput csv未添加第二行,php,csv,Php,Csv,有人能看出这个代码有什么问题吗$输出是一个多维数组,所以我将其展平,然后将键和值拆分为单独的数组。我已经对$headers和$answers进行了var_转储,但是由于某种原因,fputscsv($buffer,$answers)没有做任何事情。标题看起来很好,因此该行周围的某些内容正在中断:/ function buildcsv($output) { $headers = array(); $answers = array(); foreach($output as $secti
fputscsv($buffer,$answers)
没有做任何事情。标题看起来很好,因此该行周围的某些内容正在中断:/
function buildcsv($output)
{
$headers = array();
$answers = array();
foreach($output as $section) // Flatten sections into single array and remove config rows.
{
array_shift($section);
array_pop($section);
array_pop($section);
foreach($section as $question => $answer)
{
array_push($headers, $question); // Build array for header row
array_push($answers, $answer); // Build array for answers row
}
}
array_push($headers, "Read terms and conditions"); // Add terms and consitions column.
array_push($answers, "Yes");
$buffer = fopen('php://temp', 'r+');
fputcsv($buffer, $headers);
fputcsv($buffer, $answers);
rewind($buffer);
$csv = fgets($buffer);
fclose($buffer);
return $csv;
}
不确定,但最好写以下内容:php://temp/file.csv“?因此,基于这样一个事实,出于某种原因,我似乎只能正确访问输出缓冲区,这就是我想到的。该函数允许另一段代码将表单的rsponse转换为CSV格式,然后将其附加到电子邮件中
// Generate csv
function buildcsv($output)
{
$headers = array();
$answers = array();
foreach($output as $section) // Flatten sections into single array and remove config rows.
{
array_shift($section);
array_pop($section);
array_pop($section);
foreach($section as $question => $answer)
{
array_push($headers, $question); // Build array for header row
array_push($answers, $answer); // Build array for answers row
}
}
array_push($headers, "Read terms and conditions"); // Add terms and conditions column.
array_push($answers, "Yes");
$buffer = fopen('php://output', 'r+');
ob_start();
fputcsv($buffer, $headers);
fputcsv($buffer, $answers);
rewind($buffer);
$csv = ob_get_contents();
ob_end_clean();
return $csv;
}
对于简单的CSV创建来说,这似乎过于复杂了…
fputcsv($buffer,$answers)
在foreach循环之外,因此您只调用它一次。因为您只放置一个answers数组,所以它只会写入一行answers@MarkBaker$output
是表单中不同部分(个人详细信息、安全问题等)的数组,因此在推送到$headers
和$answers
数组后,只有一行标题(问题)和一行答案。但是答案没有被写出来,只有$headers
还有,我试过var\u dump($answers)代码>数据就在那里,它只是没有被写入csvfputcsv()接受一个一维数组;你看起来好像在构建一个多维数组,并期望它仍然可以工作。。。调用fputcsv()
将写入一行csv文件