获取fputcsv函数的返回值

5

有没有人知道一个函数或者一个酷炫的技巧,可以获取fputcsv的返回值而不是将输出写入文件?

我正在尝试将一个文件编码为tab分隔的文件,但我的客户希望其中一个列使用csv编码(因此在一个以tab为分隔符的文件中有1列csv值)。我同意这不是最理想的方案,但现在我只需要完成它。

谢谢!

2个回答

9

不要脸地从文档页面的用户笔记中复制:

$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


1
接受了这个答案,因为它更完整。非常好用!需要注意的是,在使用fgets后一定要进行trim操作,以去除fputcsv添加的换行符! - Jim Rubenstein
注意:fgets($buffer)将仅获取1行 - 考虑改用stream_get_contents($buffer) - domis86

3
$output = fopen('php://output', 'w');
fputcsv($output, $line);
fclose($output);

或者尝试使用其他支持的封装器,例如php://memory,如果您不想直接输出。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接