我正在尝试导入大约3GB的csv文件到phpmyadmin。其中一些文件包含更多终止字符,然后导入停止,因为错误的字段。我有两个栏,我想填补。我使用:作为终止字符,但当有更多的他们在行它只是停止。我不能管理csv文件,他们太大。我想跳过错误行或寻找其他解决方案。我怎么能做到这一点?csv文件如下所示
ahoj123:dublin cat:::dog pes::lolko
ha5z0ras1#
作为您的问题的解决方案,我编写了一个简单的PHP文件,它将为您“修复”您的文件。它将打开“test.csv”,其中包含以下内容:
并将其转换为以下格式并保存为“fixed_test.csv”
ahoj123:dublin cat:dog pes:lolko
请记住,我是基于你的例子,所以我让$last保留它的EOL字符,因为没有理由删除或编辑它。PHP文件:
$last
EOL
<?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);
1条答案
按热度按时间ha5z0ras1#
作为您的问题的解决方案,我编写了一个简单的PHP文件,它将为您“修复”您的文件。
它将打开“test.csv”,其中包含以下内容:
并将其转换为以下格式并保存为“fixed_test.csv”
请记住,我是基于你的例子,所以我让
$last
保留它的EOL
字符,因为没有理由删除或编辑它。PHP文件: