解析csv数据时出现问题php | regex替换引号内的逗号

解析csv数据时出现问题php | regex替换引号内的逗号,php,csv,export-to-csv,Php,Csv,Export To Csv,任何人都可以在php中共享代码来解析csv数据。在分析数据时,我在双引号中得到了作为单独数组的值,所以我的逻辑将改变。我需要将这些数据存储到mysql数据库中。下面是我的示例csv文件 com,24,2.1.0.5,en,mido,2020-11-01T03:29:32Z,1604201372915,2020-11-01T03:29:32Z,1604201372915,5,,NiceI just ran this and got the output you indicated you were

任何人都可以在php中共享代码来解析csv数据。在分析数据时,我在双引号中得到了作为单独数组的值,所以我的逻辑将改变。我需要将这些数据存储到mysql数据库中。下面是我的示例csv文件

com,24,2.1.0.5,en,mido,2020-11-01T03:29:32Z,1604201372915,2020-11-01T03:29:32Z,1604201372915,5,,NiceI just ran this and got the output you indicated you were expecting:

<?php

$file = fopen('input.txt', "r");

while (($data = fgetcsv($file, 10000, ",")) !== FALSE) {
    print_r($data);
}

com,24,2.1.0.5,en,mido,2020-11-01T03:29:32Z,16042013729152020-11-01T03:29:32Z,1604201372915,5,,Nice我刚刚运行了这个程序,得到了您表示期望的输出:


这两行100%不正确

givn,即$getData包含一个字符串,在explode()之后,它将是一个数组(重新分配给$getData)

在下一行中,尝试再次分解此数组,但这将失败并向您发出警告或错误


打开错误报告级别,并在开发过程中在屏幕上显示所有错误。

您基本上是在问如何处理嵌套在引号内的逗号吗?是的,我需要将该数据作为嵌套引号内的单个值进行解析。我建议你把问题的标题改名为“regex替换引号内的逗号”或类似的东西。在执行csv解析器命令之前,您需要替换引号内的逗号。@GetSet如果csv解析设置正确,它应该正确处理引号。根据@tadman,Code Mania,您可以指定一个“附件”。我还没有测试这个选项是否会忽略那些没有“enclosure”的字段,但你肯定可以。这里的文件参考谢谢,它的工作从txt文件读取的内容罚款。我有csv文件csv文件还有问题。是否有任何方法可以读取csv并将该内容写入文本文件?请尝试使用csv逗号分隔的相同内容。这是不可能的。我有csv格式的数据。但是当传递句柄时,
fgetscsv()
如何知道文件扩展名呢?可能是PHP版本不同,无法完成预期任务。@CodeMania,.csv文件是纯文本文件。扩展不重要,但显然重要。您正在使用哪个PHP版本?@cully在csv文件``Array([0]=>com[1]=>24[2]=>2.1.0.5[3]=>en[4]=>mido[5]=>2020-11-01T03:29:32Z[6]=>1604201372915[7]=>2020-11-01T03:29:32Z[8]=>1604201372915[9]=>5[10]=>=�M�=�M� [12] =>2020-11-01T06:34:23Z[13]=>1604212463397[14]=>“你好,Raju[15]=>非常感谢你”[16]=>497230)```
com,24,2.1.0.5,en,mido,2020-11-01T03:29:32Z,1604201372915,2020-11-01T03:29:32Z,1604201372915,5,,NiceThese 2 lines are 100% incorrect...

$getData =explode(",", $getData);
$exp_array = explode(",", $getData);