phpmyadmin导入csv文件,如何跳过错误行

q3qa4bjr  于 2022-11-09  发布在  PHP
关注(0)|答案(1)|浏览(171)

我正在尝试导入大约3GB的csv文件到phpmyadmin。其中一些文件包含更多终止字符,然后导入停止,因为错误的字段。
我有两个栏,我想填补。我使用:作为终止字符,但当有更多的他们在行它只是停止。我不能管理csv文件,他们太大。我想跳过错误行或寻找其他解决方案。我怎么能做到这一点?
csv文件如下所示

ahoj123:dublin
cat:::dog
pes::lolko
ha5z0ras

ha5z0ras1#

作为您的问题的解决方案,我编写了一个简单的PHP文件,它将为您“修复”您的文件。
它将打开“test.csv”,其中包含以下内容:

ahoj123:dublin
cat:::dog
pes::lolko

并将其转换为以下格式并保存为“fixed_test.csv”

ahoj123:dublin
cat:dog
pes:lolko

请记住,我是基于你的例子,所以我让$last保留它的EOL字符,因为没有理由删除或编辑它。PHP文件:

<?php

$filename = "test.csv";
$handle = fopen($filename, "r+") or die("Could not open $filename" . PHP_EOL);

$keep = '';
while(!feof($handle)) {
    $line = fgets($handle);

    $elements = explode(':', $line);
    $first = $elements[0];
    $key = (count($elements) - 1);
    $last = $elements[$key];

    $keep .= "$first:$last";

}
fclose($handle);

$new_filename = "better_test.csv";
$new_handle = fopen("fixed_test.csv", "w") or die("Could not open $new_filename" . PHP_EOL);
fwrite($new_handle, $keep);
fclose($new_handle);

相关问题