fputcsv用空格再创建一个空格


fputcsv creates one more space with space

我的脚本中有以下代码。

    $file= fopen("./test.csv","x+");
    $proj_lists="name,age,address,city name,country name'n";
    fputcsv($file,explode(',',$proj_lists),',',' ');
    fclose($file);

它创建一个具有给定值的csv文件。我这里的问题是它用双字创造了额外的空间。示例"country name"写为"country名称"(此单词中有2个空格)。

如何解决此问题。

我的问题是它用双字创造了额外的空间

这是因为您选择使用空格作为字符串封闭字符(第四个参数,默认值为双引号)。这是输出的第一行:

name,age,address, city  name , country  name
                 ^    ^^    ^ ^       ^^
                 e    ee    e e       ee

其中,e是存储模块,ee是转义存储模块,它是转义符,后跟存储模块字符(恰好是您试图输出的数据的一部分)。

最好简单地使用fputcsv附带的默认值;也就是说,只使用两个参数来调用函数。

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

它将输出大多数电子表格应用程序可以读取的内容:

name,age,address,"city""name","country name
"

实际上,您需要使用fputs(),如下所示:-

<?php
    $file= fopen("./test.csv","x+");
    $proj_lists=explode(',',"name,age,address,city name,country name");
    fputs($file,implode($proj_lists, ','));
    fclose($file);
?>

输出:-name,age,address,city name,country name