首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fputcsv多列(引号)

fputcsv多列(引号)
EN

Stack Overflow用户
提问于 2015-09-03 09:58:07
回答 1查看 4.4K关注 0票数 0

当试图生成一个CSV时,我希望将多个列中的数据分开,但是我只看到A1、A2、A3列中的数据,而不是在B或C中。

有办法解决这个问题吗?

我想要名称X,年龄X和城市X在三个单独的列

这是一些示例代码:

代码语言:javascript
复制
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=file.csv");
// Disable caching
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1
header("Pragma: no-cache"); // HTTP 1.0
header("Expires: 0"); // Proxies

function outputCSV($data) {
    $output = fopen($_SERVER['DOCUMENT_ROOT']."/Project_X/trunk/output/test.csv", 'w');
    foreach ($data as $row) {
        fputcsv($output, $row); // here you can change delimiter/enclosure
    }
    fclose($output);
}

outputCSV(array(
    array("name 1", "age 1", "city 1"),
    array("name 2", "age 2", "city 2"),
    array("name 3", "age 3", "city 3")
));

编辑:测试功能:

代码语言:javascript
复制
$output = fopen($_SERVER['DOCUMENT_ROOT']."/Project_X/trunk/output/test.csv", 'w');
fputcsv($output, array("hallo;123;4"),";"); // here you can change delimiter/enclosure
fclose($output);

输出文件:" hallo;123;4“而不是hallo;123;4

解决了这个问题:

代码语言:javascript
复制
$array = array("hallo;123;4");
$array = str_replace('"', '', $array);
fputcsv($output, $array);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-03 10:27:52

您会遇到这个问题,因为您要发送到fputcsv函数的数组只有一个元素。

如果将数组传递为: array("hallo“、"123”、"1"),那么它将把每个数组元素放入相关的列中。

函数fputcsv接受单个元素的数组,而不是一个数据字符串,然后是要使用的分隔符。对你来说是个分号。使用上面的数组,正确的用法是:fputcsv($output, array("hallo", "123", "1"), ';');

也就是说:文件的文件处理程序,单个元素的数组,而不是一个带有串连字符串的数组,然后是要在文件中使用的分隔符(如果这里没有设置逗号,则使用逗号)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32372497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档