我正在尝试从数组写入 csv 文件,作为 csv 文件的标题
$csv_fields[] = 'produto_quest';
$csv_fields[] = 'produto_quest1';
$csv_fields[] = 'comentario_aspecto_atm';
$csv_fields[] = 'aspecto_geral_int';
$csv_fields[] = 'organizacao_espaco';
$f = fopen('php://memory', 'w+');
fputcsv($f, $csv_fields, ";");
foreach ($relat as $fields) { // load from MySQL as a multidimensional array
foreach($fields as $key => &$value1) {
$value1 = iconv("UTF-8", "", $value1);
}
fputcsv($f, $fields, ";");
}
fseek($f, 0);
fpassthru($f);
fclose($f);
Run Code Online (Sandbox Code Playgroud)
除了文件开头的隐藏字符外,所有文件都是正确的。如果我用记事本打开文件,它会正确显示,但在 Excel 中,开头有一个空行。谁能帮我?
sil*_*R.D 10
ob_clean();就在之前使用$f = fopen('php://memory', 'w+');
例子:
ob_clean();
$f = fopen('php://memory', 'w+');
Run Code Online (Sandbox Code Playgroud)
删除 CSV 文件开头的所有空白行对我来说效果很好。
对我来说看起来不错。我测试过
$relat = array(range(1,5), range(3,7));
Run Code Online (Sandbox Code Playgroud)
我没有空白的喜欢或隐藏的字符:
HTTP/1.1 200 OK
Date: Sat, 23 Nov 2013 23:26:27 GMT
Server: Apache/2.4.6 (Ubuntu)
X-Powered-By: PHP/5.5.3-1ubuntu2
Vary: Accept-Encoding
Content-Length: 109
Content-Type: text/html
produto_quest;produto_quest1;comentario_aspecto_atm;aspecto_geral_int;organizacao_espaco
1;2;3;4;5
3;4;5;6;7
Run Code Online (Sandbox Code Playgroud)
更新:由于这种情况只发生在您身上而不是其他人身上,我相信这是因为您的 php 源文件中有一些换行符。确保标记之外没有任何内容,例如之前文件开头的换行符
您可以通过调用以下命令来测试这是否是问题的原因:
ob_end_clean();
Run Code Online (Sandbox Code Playgroud)
就在之前
fpassthru($f);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8655 次 |
| 最近记录: |