【发布时间】:2021-12-02 22:39:35
【问题描述】:
我有这个脚本,它将数据从 file1 复制到 newFile。在将其复制到新文件之前,我使用索引填写了一些空列(所有行都相同),这给了我一个偏移错误。
例如,我的 file1.csv 看起来像这样
aa,bb,cc,,ee,,, aa,bb,cc,,ee,,, aa,bb,cc,,ee,,, aa,bb,cc,,ee,,,
我希望的输出如下
aa,bb,cc,abcd,ee,,, aa,bb,cc,abcd,ee,,, aa,bb,cc,abcd,ee,,, aa,bb,cc,abcd,ee,,,
由于第 4 列是空的,(检查 file1.csv)fgetcsv 只能读取到 cc,因为在 cc 之后它是空的。所以ee 被跳过了。所以我得到的偏移错误输出是(newFile),剩余的逗号和分隔符逗号也不见了。
aa bb cc abcd aa bb cc abcd aa bb cc abcd aa bb cc abcd
我想创建一个包含所有逗号分隔值和所有剩余逗号的 newFile。让我知道您是否可以通过任何一种方式帮助我。
这是我的脚本
//Open the old file for reading
$file1 = fopen("myfile2.csv", "r");
//Create a new file for writing
$newFile = fopen("$fname", "w+");
while (($row = fgetcsv($file1, 1000)) !== FALSE) {
$var = "abcd";
//insert at 3rd index
$row[3]=$var;
//write data into new file
fputcsv($newFile, array_values($row), ',');
}
fclose($file1);
【问题讨论】:
-
无法重现,该代码似乎可以满足您的要求。
$fname设置了吗? -
@brombeer
$fname已设置。$file1是$file。请参考编辑过的。 -
您使用的是什么操作系统和什么版本的 PHP?你得到什么确切的错误信息?如前所述,无法重现,Linux Mint,PHP 7.4.24 (cli)
-
@brombeer (Windows, PHP 7) Undefined offset: 3 in ////pg.php 虽然我得到一个错误,文件是用输入的值创建的,但不是在路上我希望。
-
它给了我一个偏移错误请总是告诉我们错误信息。完整的未汇总错误消息。