我一直在尝试使用PHP写入.csv文件,尽管由于某种原因文件仍然是空白而且没有添加任何数据。首先,我向addComment.php发送一个AJAX post请求,然后将POST数据附加到csv文件。 这是JS代码
submit.addEventListener("click", (e) => {
e.preventDefault();
var data = {
body:commentBody.value,
rating:rating.value.trim(),
id:id,
category:category.trim()
};
$.post("addComment.php", data, handleRes);
//handleRes just logs the response data
});
PHP文件现在应该获取$ _POST数据并附加到csv文件(当前为空) 这是PHP脚本
ob_start();
session_start();
$body = $_POST["body"];
$rating = $_POST["rating"];
$category = trim($_POST["category"]);
$name = $_SESSION["username"];
$id = $_POST["id"];
$filepath = "./data/comments/" . $category . ".csv");
$csvLine = array($name, $body, $rating);
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename='$filepath'");
$output = fopen("php://output", "w");
fputcsv($output, $csvLine, "|");
fclose($output);
答案 0 :(得分:-1)
可能是因为您打开了输出缓冲,因此输出不会被定向到指定的输出缓冲区(在本例中为STDOUT),而是在输出缓冲区中收集。
我认为你可以在最后调用ob_end_flush()
来将内容刷新到预期的输出。