2017-10-06 22 views
0

在我的应用程序中,我使用php生成一些带有一些数据的csv文件。我的代码如下所示。fputcsv()在不同的单元格中用分号写分隔的数据

$fileHandle = fopen('test.csv', "w"); 
$list = array (
    array('aaa;cc;kk;', 'bbb', 'ccc', 'dddd'), 
    array('123', '456', '789'), 
    array('"aaa"', '"bbb"') 
); 

foreach ($list as $fields) { 
    fputcsv($fileHandle, $fields); 
} 
fclose($fileHandle); 

数据aaa;cc;kk;被写入到分离细胞(第一单元包含AAA,第二单元包含CC),而不是将其写入到单个细胞。

documentation中提到,默认情况下,分隔符是逗号。为什么这个值用分号分隔?我怎样才能避免这种情况?

在此先感谢。

+3

当你说“单独的单元格”,你的意思是它在Excel中看起来如何?在纯文本CSV中它看起来如何? –

+0

@MattS。我的意思是它在Excel中的外观。在纯文本中,csv是正确的。 – Jenz

+3

然后CSV有效。这不是一个编程问题,而是一个Excel支持问题。您可能必须将其配置为不处理“;”作为分隔符。 –

回答

-1

定界符可以通过使用fputcsv():

INT fputcsv的第三个参数(资源$处理,数组$字段[,字符串$分界= “”[,字符串$外壳=“被置为” '[,字符串$的escape_char = “\”]]])

请更改:

fputcsv($file,explode(';',$customerInfo)); 

到:

fputcsv($file,explode(';',$customerInfo), ";"); 

请在检查堆栈溢出之前检查documentation

相关问题