【发布时间】:2014-07-11 21:54:46
【问题描述】:
我有一个 csv 文件,我使用以下代码读取并保存为输出文件:
CSV 内容:
10038,"Service, Inc.",loten,4u@att.net,9951,xxx,6321
10041,Roadsi deInc.,Kgel,gel1980@gmail.com,1101,xxx,7967
10042,Rang LLC,Resgers,resranger85@yahoo.com,2073,4611,xxx
<?php
$csv_filename = "output.csv";
$fp = fopen($csv_filename, "w");
if (($handle = fopen(__DIR__.'/test.csv', "r")) !== FALSE && $fp) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$data_row = array(
$data[0],
$data[1],
$data[2],
$data[3],
$data[4],
$data[5]
);
fputcsv($fp, $data_row, "|");
}
}
fclose($handle);
fclose($fp);
我得到的结果如下:
10038|"Service, Inc."|loten|4u@att.net|9951|xxx
10041|"Roadsi deInc."|Kgel|gel1980@gmail.com|1101|xxx
10042|"Rang LLC"|Resgers|resranger85@yahoo.com|2073|4611
当字符串中有空格时,如何删除 fputcsv 函数添加的引号,以及如何在 csv 输出的每一行中添加 0d0a 结尾?
【问题讨论】:
-
RTFM? php.net/fgetcsv 您可以使用一些选项来列出分隔符和包围字符。
-
如果我阅读了它,如果我有解决方案,我不会在这里问
-
您实际上应该阅读php.net/manual/en/function.fputcsv.php,因为您想更改默认外壳。您的答案就在顶部。
-
我确实添加了以下内容:
while (($data = fgetcsv($handle, 1000, ",",'"')) !== FALSE) {但引号仍在输出文件中 -
以 0d0a 结尾的行呢?