【问题标题】:Getting a blank csv file out of php从php中获取一个空白的csv文件
【发布时间】:2019-08-08 14:51:10
【问题描述】:

我已经阅读了很多关于这个的问题,并且我已经尝试了这些问题中的所有代码,并且我想出了这个:

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="teste.csv";');

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

foreach ($StockReady as $line) {
    fputcsv($f, $line, '||');
}
fclose ($f);

我的文件输出了一些我在标题中的js:

我的数组$StockReady是这样的:

Array
(
    [0] => 111|1|1861||
    [1] => arm_2|1|998745||
    [2] => 111|2|-94||
    [3] => arm_2|2|4899.04113588||
    [4] => arm_teste|2|140.958||
    [5] => 111|3|2||
    [6] => arm_2|3|-77||
    [7] => arm_teste|3|5021||
    [8] => 111|4|-28||
    [9] => arm_2|4|15||

......

就像我说的:我已经尝试了在这个主题中找到的所有代码,并且我的文件一直在输出那个 js。任何人都知道可能是什么?谢谢

【问题讨论】:

  • 输出的 JS 是从哪里来的?
  • 所有这些都在我的 JS 控制器中。我把 JS 拿出来了,它把我在控件中的其他回声放入文件中。只有模型和控制器,因为这将是一个 SFTP 控制器。
  • 任何回显的内容都会出现在输出中。
  • 为什么它包含其余的回声?为什么只有js?我能做些什么来选择文件中的内容吗?
  • 此处语法错误 - header('Content-Disposition: attachment; filename="teste.csv";');试试 - header('Content-Disposition: attachment; filename=teste.csv');

标签: php arrays csv


【解决方案1】:

我猜你的数组应该返回为 csv 除以“|”。既然它已经采用了正确的格式,为什么不试试旧的“echo”和“implode”呢?

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename=teste.csv');

echo implode(PHP_EOL, $StockReady);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    • 1970-01-01
    • 2014-07-27
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多