gpt4 book ai didi

php - fputcsv 写入空白文件

转载 作者:行者123 更新时间:2023-11-30 01:16:23 24 4
gpt4 key购买 nike

我在使用 fputcsv 导出 CSV 文件时遇到一些问题。文件已下载,但内容为空。我尝试导出到 xls,它工作得很好,但我想使用带有自定义字段标题的 csv,如下面的代码所示。我不确定我是否做错了什么或者我是否需要完成任何 php.ini 更改。我知道我启用了 fopen,但该文件大约有 6.5mb 的数据库信息。

提前致谢!

$colnames = array(
'forDepts' => "Member No.",
'clientId' => "Date joined",
'createdOn' => "Title",
'createdBy' => "First name",
'description' => "Notes"
);

function map_colnames($input)
{
global $colnames;
return isset($colnames[$input]) ? $colnames[$input] : $input;
}

function cleanData(&$str)
{
if($str == 't') $str = 'TRUE';
if($str == 'f') $str = 'FALSE';
if(preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) {
$str = "'$str";
}
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
$str = mb_convert_encoding($str, 'UTF-16LE', 'UTF-8');
}

// filename for download
$filename = "website_data_" . date('Ymd') . ".csv";

header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: text/csv; charset=UTF-16LE");



$out = fopen("php://output", 'w');

$flag = false;

$result = mysql_query("SELECT forDepts, clientId, createdOn, createdBy, description FROM notes") or die('Query failed!');

while(false !== ($row = mysql_fetch_assoc($result))) {
if(!$flag) {
// display field/column names as first row
fputcsv($out, array_keys($row), ',', '"');
$flag = true;
}
array_walk($row, 'cleanData');
fputcsv($out, array_values($row), ',', '"');
}
fclose($out);
exit;

最佳答案

这可能是您的分隔符的问题。当仅使用文件名和数组作为参数时(即不指定参数 3 和 4),它对我有用。

关于php - fputcsv 写入空白文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19017078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com