headers 使用 PHP SQL 服务器导出 CSV 数据
CSV data export with headers using PHP SQL server
我正在尝试将数据从 SQL 服务器数据库上的 table 导出到 CSV 文件。
数据格式正确并放置在文件的每个单独的单元格中。但是 header 格式不正确,并且作为连续流全部打印到一个单元格上。
假设您有 a,b,c,d 作为 headers :
Header 在第一个单元格上打印为 abcd,而不是在单个单元格上打印。我们如何将它们分开?
这是代码:
$flag = false;
if ($query) {
while( $data = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC) ) {
foreach($data AS $key => $value){
if(!$flag) {
// display field/column names as first row
$out .= implode("\t", array_keys($data)) . "\n";
//$out .= '"'.$head.'",';
$flag = true;
}
//If the character " exists, then escape it, otherwise the csv file will be invalid.
$pos = strpos($value, '"');
if ($pos !== false) {
$value = str_replace('"', '\"', $value);
}
$out .= '"'.$value.'",';
}
$out .= "\n";
}
$out .= implode("\t", array_keys($data)) . "\n";
正在创建制表符分隔行,但您在其他地方使用逗号分隔。
可能你也想在这里使用逗号:
$out .= implode(",", array_keys($data)) . "\n";
我正在尝试将数据从 SQL 服务器数据库上的 table 导出到 CSV 文件。 数据格式正确并放置在文件的每个单独的单元格中。但是 header 格式不正确,并且作为连续流全部打印到一个单元格上。
假设您有 a,b,c,d 作为 headers : Header 在第一个单元格上打印为 abcd,而不是在单个单元格上打印。我们如何将它们分开?
这是代码:
$flag = false;
if ($query) {
while( $data = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC) ) {
foreach($data AS $key => $value){
if(!$flag) {
// display field/column names as first row
$out .= implode("\t", array_keys($data)) . "\n";
//$out .= '"'.$head.'",';
$flag = true;
}
//If the character " exists, then escape it, otherwise the csv file will be invalid.
$pos = strpos($value, '"');
if ($pos !== false) {
$value = str_replace('"', '\"', $value);
}
$out .= '"'.$value.'",';
}
$out .= "\n";
}
$out .= implode("\t", array_keys($data)) . "\n";
正在创建制表符分隔行,但您在其他地方使用逗号分隔。
可能你也想在这里使用逗号:
$out .= implode(",", array_keys($data)) . "\n";