我浏览了这个网站,发现了大量关于同一件事的线索,但没有一个能真正帮助像我这样的新手,因为我不能正确理解答案。
我从数据库中选择了数据并显示在网页上的表格中。我现在需要此表下方的链接,该链接会将这些数据导出到 CSV 文件。
我在这个网站上找到的答案之一是:为 PHP 中的用户创建一个 CSV 文件
然而,答案对我来说真的没有意义,我不知道如何处理代码。
这是该答案的代码:
header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
$array = array(
array("data11", "data12", "data13"),
array("data21", "data22", "data23"),
array("data31", "data32", "data23"));
outputCSV($array);
function outputCSV($data) {
$outstream = fopen("php://output", "w");
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals); // add parameters if you want
}
array_walk($data, "__outputCSV", $outstream);
fclose($outstream);
}
我有很多问题,比如我需要先创建一个excel文件吗?如果是这样,它需要为空白吗?
这是什么?:
$array = array(
array("data11", "data12", "data13"),
array("data21", "data22", "data23"),
array("data31", "data32", "data23"));
这应该是我的数据吗?我该如何改变它以适应我拥有的数据?
为什么在定义函数之前调用函数?
函数中的这些变量是什么($vals、$key、$filehandler)?它们是在哪里创建的?
我如何使用此代码,因为很多人似乎认为它很完美。
我真的需要从头到尾的帮助,因为我是一个完整的 PHP 新手
我已经研究了以下答案之一,现在我有了这段代码
$i=0;
$csv="";
for ($a=0; $a<=$count; $a++) {
$i++;
$csv.=preg_replace("/\n/",'',preg_replace("/,/",';',$serveys[$a]['FeedbackName'])).",".
preg_replace("/\n/",'',preg_replace("/,/",';',$serveys[$a]['BranchName']));
$csv.="\n";
}
if ($i>0) {
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"table.csv\";" );
header("Content-Transfer-Encoding: binary");
echo $csv;
} else {
return "Nothing to download!";
}
当我运行页面时,虽然没有任何变化,但数据仍按原样显示在页面上。但没有创建 csv 文件,也没有发生错误