当我使用它解析它时,我有一个文本文件(用逗号分隔的逗号分隔的逗号):
if (($handle = fopen('C:\tester\fake.txt', "r")) !== FALSE) {
while (($data = fgetcsv($handle, ",")) !== FALSE) {
$num = count($data);
//echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
它显示每个字段没有引号,fgetcsv是否自动删除它?
如何让它显示没有引号的字段并为它们添加引号然后保存文件?可能的?
全部谢谢
我刚试过fputcsv,我发现写的文件周围没有引号,只有极少数,比初始文件少!我做错了什么?
$row = 1;
$newfile = fopen('C:\new-file.txt', "w");
if (($handle = fopen('C:\fake.txt', "r")) !== FALSE) {
while (($data = fgetcsv($handle, ",")) !== FALSE) {
$num = count($data);
fputcsv($newfile, $data, ',', '"');
}
fclose($handle);
fclose($newfile);
}
答案 0 :(得分:2)
fgetcsv 会删除引号。
使用 fputcsv ,您可以编写cvs文件。它确实有关于使用引号的选项,但它会对所有字段都做同样的事情。
答案 1 :(得分:1)
引号是CSV文件格式的一部分(包含或包含换行符的字段的引号),因此fgetcvs将(并且应该)删除它们。
答案 2 :(得分:0)
是的,它会删除引号,因为它假定您希望列的数据和引号不是数据的一部分。请改用fget
。