有没有人知道一个函数或者一个酷炫的技巧,可以获取fputcsv
的返回值而不是将输出写入文件?
我正在尝试将一个文件编码为tab分隔的文件,但我的客户希望其中一个列使用csv编码(因此在一个以tab为分隔符的文件中有1列csv值)。我同意这不是最理想的方案,但现在我只需要完成它。
谢谢!
不要脸地从文档页面的用户笔记中复制:
$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
。
$output = fopen('php://output', 'w');
fputcsv($output, $line);
fclose($output);
或者尝试使用其他支持的封装器,例如php://memory
,如果您不想直接输出。
fgets
后一定要进行trim
操作,以去除fputcsv
添加的换行符! - Jim Rubensteinfgets($buffer)
将仅获取1行 - 考虑改用stream_get_contents($buffer)
。 - domis86