我的脚本中有以下代码。
$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