【发布时间】:2011-09-09 13:26:07
【问题描述】:
有谁知道一个函数或一个很酷的技巧来获取fputcsv 的返回值而不是将输出写入文件?
我正在尝试将文件编码为制表符分隔文件,但我的客户想要以 csv 编码的列之一(因此制表符分隔文件中的 1 列 csv 值)。不理想,我同意,但此时我只需要完成它。
谢谢!
【问题讨论】:
有谁知道一个函数或一个很酷的技巧来获取fputcsv 的返回值而不是将输出写入文件?
我正在尝试将文件编码为制表符分隔文件,但我的客户想要以 csv 编码的列之一(因此制表符分隔文件中的 1 列 csv 值)。不理想,我同意,但此时我只需要完成它。
谢谢!
【问题讨论】:
无耻地从文档页面上的user note 复制:
$buffer = fopen('php://temp', 'r+');
fputcsv($buffer, $data);
rewind($buffer);
$csv = fgets($buffer);
fclose($buffer);
// Perform any data massaging you want here
echo $csv;
除了php://temp之外,所有这些都应该看起来很熟悉。
【讨论】:
fgets 之后 trim 删除 fputcsv 添加的新行!
fgets($buffer) 只会得到 1 行 - 考虑改用 stream_get_contents($buffer)
$output = fopen('php://output', 'w');
fputcsv($output, $line);
fclose($output);
如果您不想直接输出,请尝试其他supported wrappers 之一,例如php://memory。
【讨论】: